/***************************************************************************
 *   Copyright (C) 2016 by telink							               *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
 ***************************************************************************/
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "cmdfunc.h"
#include "usbprn.h"


// until we have a fix for those ugly default type alignment. 
#if defined(__clang__)
# pragma clang diagnostic push
#endif

#if defined(__clang__)
# pragma clang diagnostic ignored "-Wcast-align"
#endif

#define CMD_STR_OPT "fbpermnuc"

extern libusb_device_handle *tlink_dev;
libusb_context *ctx;

extern int uart_mode;
int	m_Evk = 1;
int bsilence = 0;
int EVK_SetUartMode (int enable);
int m_mem_adr = 0xa000;
BYTE cmdbuff[1024*1024];

typedef unsigned char * PBYTE;

BYTE m_mcuram5325[] = {
	0x08,0x80,0x00,0x00,0x00,0x00,0x00,0x54, 0x1c,0x0b,0x88,0x00,0x00,0x00,0x00,0x00,
	0x4e,0x80,0xc0,0x46,0x20,0x08,0x21,0x09, 0x21,0x0a,0x08,0x50,0x04,0xb1,0x91,0x02,
	0xfb,0xcd,0x11,0x08,0xc0,0x6b,0x12,0x08, 0x85,0x06,0x10,0x08,0xc0,0x6b,0x11,0x08,
	0x85,0x06,0x00,0xa0,0x10,0x09,0x11,0x0a, 0x08,0x50,0x04,0xb1,0x91,0x02,0xfb,0xcd,
	0x0f,0x09,0x40,0xa0,0x08,0x40,0x40,0xa0, 0x48,0x40,0x01,0xa0,0x88,0x40,0x0f,0x09,
	0x0f,0x0a,0x10,0x0b,0x08,0x58,0x10,0x50, 0x04,0xb1,0x04,0xb2,0x9a,0x02,0xf9,0xcd,
	0x00,0x90,0x60,0x98,0xfe,0x87,0xc0,0x46, 0x12,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
	0xb0,0x97,0x80,0x00,0xa0,0x97,0x80,0x00, 0x00,0x94,0x80,0x00,0x08,0x94,0x80,0x00,
	0x0c,0x06,0x80,0x00,0x00,0x83,0x80,0x00, 0x00,0x84,0x80,0x00,0x1c,0x0b,0x00,0x00,
	0x00,0x94,0x80,0x00,0x00,0x94,0x80,0x00, 0xff,0xff,0xff,0xff,0x00,0x94,0x80,0x00,
	0xc0,0x97,0x80,0x00,0xc0,0x46,0xc0,0x46, 0xc0,0x46,0xc0,0x46,0xc0,0x46,0xc0,0x46,
	0x00,0x65,0x0f,0x64,0xd8,0x6b,0x01,0x64, 0x00,0x90,0x22,0x98,0x01,0x6c,0xd0,0x6b,
	0x0f,0x6c,0x00,0x69,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x70,0x07,0xc0,0x46,0x00,0x65,0x83,0x60, 0x00,0xa3,0x05,0x08,0x0c,0xa1,0x00,0xa2,
	0x00,0x33,0x01,0x33,0x02,0x33,0x00,0x90, 0xb1,0x98,0x03,0x60,0x00,0x6d,0xc0,0x46,
	0xd0,0x09,0x00,0x00,0xf0,0x65,0x5f,0x06, 0x56,0x06,0x4d,0x06,0x44,0x06,0xf0,0x64,
	0x45,0x0e,0x00,0xa4,0x86,0x60,0x34,0x50, 0xff,0x97,0xe4,0x9f,0x43,0x09,0x44,0x0a,
	0x88,0x06,0x44,0x09,0x14,0x50,0x00,0xa7, 0x0c,0xba,0x33,0x58,0x8a,0x06,0xb9,0x06,
	0x93,0x06,0x51,0x06,0x01,0xb3,0x33,0x50, 0x0f,0x50,0x3f,0x09,0x0a,0x48,0x01,0xb7,
	0x00,0xaa,0xf6,0xc0,0x3d,0x0a,0x14,0x58, 0x55,0x58,0x2b,0xf4,0x1b,0xfc,0x05,0x33,
	0xab,0xf0,0x9b,0xfe,0x04,0x33,0x6b,0xf0, 0xdb,0xff,0x02,0x33,0xeb,0xff,0x03,0x33,
	0x33,0x0b,0x4a,0x06,0x1a,0x50,0x5b,0x06, 0x1a,0x50,0x35,0x0b,0x1a,0x50,0x35,0x0a,
	0x28,0xf2,0x43,0x06,0x21,0xec,0x00,0xfe, 0x1a,0x50,0x6a,0xf0,0x01,0xc5,0x32,0x0a,
	0x1a,0x50,0x2a,0xfe,0x3f,0xa3,0x13,0x00, 0x04,0xab,0x26,0xc0,0x00,0xa0,0x05,0xab,
	0x42,0xc0,0x04,0x3b,0x1a,0xf6,0x2d,0x0b, 0x02,0x39,0x2b,0x00,0x13,0x03,0x8a,0xf7,
	0x2b,0x09,0x0b,0x00,0x1a,0x03,0x03,0x39, 0x52,0xf0,0x52,0xf8,0xcb,0xf7,0x15,0xec,
	0x1d,0x03,0xab,0xf0,0x9b,0xfe,0x00,0xab, 0x0d,0xc0,0x21,0x0b,0x1a,0x58,0x25,0x0b,
	0x1a,0x50,0x00,0xa8,0x17,0xc0,0x05,0x39, 0x01,0xa3,0x00,0xa9,0x01,0xc0,0x0b,0xf4,
	0x1b,0xe4,0x5a,0x06,0x13,0x50,0x33,0x58, 0xab,0x87,0x7f,0xa3,0x9a,0x03,0x0d,0xc0,
	0x43,0x06,0x18,0x58,0x05,0x3b,0x1a,0xf4, 0x02,0x3b,0x12,0xe4,0x00,0x33,0x1a,0x0b,
	0x00,0x90,0x86,0x9a,0xcd,0x87,0xf0,0xa3, 0x1b,0xf6,0xea,0x87,0x42,0x06,0x12,0x58,
	0x05,0x3b,0x94,0x06,0x1a,0xf4,0x02,0x3b, 0x00,0x30,0x01,0x33,0x12,0xe4,0x60,0x06,
	0x11,0x0b,0x00,0x90,0xf5,0x9a,0xbc,0x87, 0x42,0x06,0x10,0x58,0x02,0x3b,0x20,0xa2,
	0x00,0x90,0xd2,0x9a,0xb5,0x87,0xc0,0x46, 0x04,0x94,0x80,0x00,0x00,0x94,0x80,0x00,
	0xfc,0x9f,0x80,0x00,0xec,0x9f,0x80,0x00, 0xff,0x9f,0x80,0x00,0xf8,0x9f,0x80,0x00,
	0x30,0x06,0x80,0x00,0xc1,0x05,0x00,0x00, 0x7d,0x05,0x00,0x00,0xff,0xff,0xff,0xc0,
	0xff,0xff,0xff,0xbf,0xf4,0x9f,0x80,0x00, 0xc0,0x97,0x80,0x00,0xf0,0x65,0x5f,0x06,
	0x56,0x06,0x4d,0x06,0x44,0x06,0xf0,0x64, 0x86,0x60,0x03,0x33,0x11,0x3b,0x02,0x32,
	0x1c,0xf4,0x80,0xa2,0x24,0xfc,0x12,0xf4, 0x14,0x03,0x01,0x34,0x1c,0xf2,0x24,0xfe,
	0xa2,0x06,0x1c,0xf1,0x24,0xff,0x1b,0xe7, 0x9c,0x00,0x0f,0x3f,0x23,0xec,0x00,0xa9,
	0x6d,0xcd,0x93,0x06,0x4f,0x0a,0x24,0xf1, 0x90,0x06,0x10,0x3a,0xe3,0xea,0x80,0xa4,
	0x5b,0xf0,0x14,0x00,0x99,0x06,0xa4,0x06, 0x00,0xa3,0x11,0x80,0x54,0xf6,0x0c,0xc5,
	0x00,0xa4,0xa4,0x05,0x09,0xc1,0x5c,0x06, 0x2c,0x03,0x00,0x34,0x3f,0xa4,0x22,0x00,
	0x17,0xc1,0x3a,0x48,0x00,0x3c,0x22,0x40, 0x01,0xb7,0x01,0xb3,0x99,0x02,0x4e,0xcd,
	0x9a,0xf0,0x82,0xe8,0x15,0x28,0x96,0x48, 0xd2,0x48,0x14,0xf6,0x00,0xac,0xe5,0xca,
	0x00,0xa4,0xa4,0x05,0xe2,0xc0,0x5c,0x06, 0x2c,0x03,0x00,0x34,0x3f,0xa4,0x22,0x00,
	0xe7,0xc0,0x01,0xaa,0x22,0xc0,0x02,0xaa, 0x25,0xc0,0x03,0xaa,0x3f,0xc0,0x08,0xaa,
	0x40,0xc0,0x04,0xaa,0x4d,0xc0,0x05,0xaa, 0x52,0xc0,0x06,0xaa,0x54,0xc0,0x07,0xaa,
	0xdb,0xc1,0x2d,0xf2,0x42,0x06,0xae,0xe9, 0x14,0x58,0x32,0xf1,0x96,0xeb,0x76,0xf0,
	0x00,0xa2,0x00,0x33,0x03,0x80,0x2c,0x0b, 0x01,0xb2,0x9a,0x02,0x04,0xc0,0x43,0x06,
	0x1d,0x58,0x2d,0xeb,0xb5,0x02,0xf6,0xc9, 0x00,0x3b,0xc6,0x87,0x00,0x3c,0x22,0x48,
	0x3a,0x40,0x01,0xb7,0xc1,0x87,0x00,0x3a, 0x16,0x40,0x42,0x06,0x14,0x58,0x55,0x06,
	0x00,0x31,0x9a,0x06,0x01,0x3b,0x4e,0x06, 0x00,0xad,0x02,0xc0,0x1a,0x48,0x15,0x02,
	0x32,0xc0,0x41,0x06,0x0a,0x58,0x12,0xeb, 0xb2,0x02,0xf5,0xc3,0x00,0xa1,0x06,0x60,
	0x08,0xec,0x3c,0x6c,0x90,0x06,0x99,0x06, 0xa2,0x06,0xab,0x06,0xf0,0x6d,0x00,0x3a,
	0x16,0x40,0xa2,0x87,0x00,0x3a,0x14,0xf6, 0x14,0x0a,0x24,0xfe,0x14,0x40,0x14,0x0d,
	0x01,0xb2,0x16,0x40,0x60,0xa2,0x2a,0x40, 0x01,0xa4,0x2a,0x48,0x14,0x02,0xfc,0xc1,
	0x93,0x87,0x02,0x3a,0x32,0x01,0x12,0xf6, 0x00,0x3c,0x12,0xfe,0x22,0x40,0x8c,0x87,
	0x03,0x3c,0x05,0x33,0x04,0x34,0x88,0x87, 0x04,0x3a,0x01,0xba,0x04,0x32,0x00,0xaa,
	0x00,0xcc,0x82,0x87,0x05,0x3b,0x80,0x87, 0x53,0x06,0x00,0x39,0xaa,0x06,0xb1,0x06,
	0x7b,0x87,0xc0,0x46,0x30,0x06,0x80,0x00, 0x40,0x42,0x0f,0x00,0xb8,0x00,0x80,0x00,
	0xba,0x00,0x80,0x00,0xf0,0x65,0x5f,0x06, 0x56,0x06,0x4d,0x06,0x44,0x06,0xf0,0x64,
	0x84,0x60,0x17,0xec,0x0e,0x3a,0x80,0x06, 0x91,0x06,0x0c,0xec,0x02,0x33,0x0f,0x3a,
	0x00,0xaf,0x44,0xcd,0x0d,0x3b,0x1b,0xf4, 0x1b,0xe4,0x9a,0x06,0x13,0xf6,0x1b,0xfe,
	0x00,0x33,0x80,0xa3,0x5b,0x02,0x13,0x03, 0x1b,0xf6,0x6e,0x06,0x1b,0xfe,0x00,0xa5,
	0x0f,0xb6,0x01,0x33,0x10,0x80,0x01,0xaa, 0x46,0xc0,0x00,0xaa,0x37,0xc1,0x00,0x3b,
	0x51,0x06,0x4a,0x06,0x00,0xf4,0x00,0xe4, 0x00,0x90,0x28,0x99,0x00,0xa8,0x39,0xc0,
	0x01,0xb5,0xaf,0x02,0x23,0xcd,0x04,0xb4, 0xa3,0x48,0x20,0x28,0x33,0x40,0xe2,0x48,
	0x3f,0xa1,0x0a,0x00,0x07,0xaa,0xe6,0xc1, 0x1d,0x09,0x00,0xf2,0xc3,0xe8,0x0a,0x58,
	0x18,0xf1,0x94,0x06,0xc0,0xea,0x1b,0x0a, 0x40,0xf0,0x93,0x06,0x02,0xec,0x00,0xa3,
	0x60,0x06,0xa4,0x06,0x14,0xec,0x02,0x80, 0x01,0xb3,0x5b,0x05,0x03,0xc0,0x0a,0x58,
	0x12,0xea,0xa2,0x02,0xf8,0xc9,0x01,0xb5, 0x64,0x06,0xaf,0x02,0xdb,0xcc,0x04,0x60,
	0x38,0xec,0x3c,0x6c,0x90,0x06,0x99,0x06, 0xa2,0x06,0xab,0x06,0xf0,0x6d,0x04,0xaa,
	0x0e,0xc0,0x00,0xf4,0x00,0xa3,0x01,0xa1, 0x32,0xec,0x00,0xe4,0x00,0x90,0xee,0x98,
	0x00,0xa8,0xc5,0xc1,0x00,0xa7,0xea,0x87, 0x51,0x06,0x01,0x3b,0x4a,0x06,0xb9,0x87,
	0x02,0x3a,0x1a,0x01,0x32,0x40,0x00,0xa3, 0x01,0xa1,0x32,0xec,0xb2,0x87,0xc0,0x46,
	0x30,0x06,0x80,0x00,0x40,0x42,0x0f,0x00, 0x30,0x65,0x1d,0xec,0x0b,0xf4,0x07,0x09,
	0x83,0x60,0x00,0xf4,0x14,0xec,0x02,0x31, 0x02,0xe4,0x1b,0xe4,0x15,0xa1,0x04,0x08,
	0x01,0x35,0x00,0x34,0xff,0x97,0xb2,0x9e, 0x03,0x60,0x30,0x6d,0xb1,0x00,0x03,0x71,
	0x00,0x0a,0x00,0x00,0x00,0x65,0x06,0x08, 0x83,0x60,0x00,0xa3,0x54,0xb0,0x0d,0xa1,
	0x00,0xa2,0x00,0x33,0x01,0x33,0x02,0x33, 0xff,0x97,0xa0,0x9e,0x03,0x60,0x00,0x6d,
	0x00,0x0a,0x00,0x00,0x00,0x65,0x81,0x60, 0x6a,0x06,0x03,0xb2,0x00,0xf4,0x11,0x40,
	0x00,0xe4,0x01,0xa1,0x00,0xa3,0xff,0x97, 0xcf,0x9f,0x01,0x60,0x01,0xa0,0x00,0x6d,
	0x10,0x65,0x81,0x60,0x6c,0x06,0x03,0xb4, 0x00,0xf4,0x01,0xa1,0x22,0xec,0x80,0xa3,
	0x00,0xe4,0xff,0x97,0xc1,0x9f,0x01,0x60, 0x20,0x48,0x10,0x6d,0xf0,0x65,0x07,0xf4,
	0x0e,0xf4,0x1c,0xec,0x15,0xec,0x3f,0xe4, 0x36,0xe4,0xe3,0xf7,0x07,0xc4,0x23,0xec,
	0x38,0xec,0x31,0xec,0xff,0x97,0xb0,0x9f, 0x04,0xec,0x20,0xec,0xf0,0x6d,0x80,0xa1,
	0xb3,0xa0,0xff,0x97,0xcf,0x9f,0x31,0xec, 0x23,0xec,0x38,0xec,0x2a,0xec,0xff,0x97,
	0xa3,0x9f,0x00,0xa1,0x04,0xec,0xb3,0xa0, 0xff,0x97,0xc4,0x9f,0xed,0x87,0xc0,0x46,
	0xf0,0x65,0x57,0x06,0x46,0x06,0xc0,0x64, 0x00,0xf4,0x09,0xf4,0x07,0xe4,0x08,0xe4,
	0x19,0xf6,0x09,0xfe,0x01,0xa4,0x0c,0x00, 0xa4,0x06,0x7f,0xa4,0xa1,0x03,0x80,0xa5,
	0x88,0x06,0x1c,0xfc,0x19,0xf4,0x2d,0xf4, 0x09,0xfe,0x2c,0x03,0x00,0xa8,0x1e,0xcd,
	0x00,0xa6,0xaa,0x06,0x00,0xa3,0x98,0x05, 0x1d,0xc0,0x00,0xa9,0x08,0xc0,0x14,0xa3,
	0x25,0x48,0x29,0x02,0x04,0xc0,0x01,0xbb, 0x1b,0xf4,0x1b,0xfc,0x00,0xab,0xf7,0xc1,
	0x53,0x06,0x3b,0x03,0x1b,0x48,0x93,0x15, 0x00,0xa3,0x9c,0x05,0x02,0xc1,0x01,0xb7,
	0x3f,0xf4,0x3f,0xe4,0x01,0xb6,0x33,0xf4, 0x1b,0xe4,0x98,0x02,0xe2,0xcc,0x0c,0x6c,
	0x90,0x06,0x9a,0x06,0xf0,0x6d,0x53,0x06, 0x95,0x1d,0x3b,0x03,0x1d,0x40,0x00,0xa9,
	0xea,0xc0,0x14,0xa3,0x25,0x48,0x29,0x02, 0xe6,0xc0,0x01,0xbb,0x1b,0xf4,0x1b,0xfc,
	0x00,0xab,0xf7,0xc1,0xe0,0x87,0xc0,0x46, 0x07,0x0b,0x00,0xf6,0x00,0xfe,0x09,0xf6,
	0x18,0x40,0x09,0xfe,0x01,0xb3,0x19,0x40, 0x04,0x09,0x60,0xa3,0x0b,0x40,0x01,0xa2,
	0x0b,0x48,0x1a,0x02,0xfc,0xc1,0x70,0x07, 0xb8,0x00,0x80,0x00,0xba,0x00,0x80,0x00,
	0x30,0x65,0x03,0xf1,0x07,0x09,0x18,0xea, 0x0c,0x58,0x40,0xf0,0x00,0xa3,0x06,0x0d,
	0x02,0x80,0x01,0xb3,0xab,0x02,0x03,0xc0, 0x0a,0x58,0x12,0xeb,0x90,0x02,0xf8,0xc2,
	0x30,0x6d,0xc0,0x46,0x30,0x06,0x80,0x00, 0x40,0x42,0x0f,0x00,0x40,0x07,0xc0,0x46,
	0x00,0x65,0x00,0xa8,0x03,0xc0,0x02,0x08, 0x05,0xa1,0xff,0x97,0x43,0x9f,0x00,0x6d,
	0x02,0x06,0x00,0x00,0xf0,0x65,0x47,0x06, 0x80,0x64,0x84,0x60,0x07,0xec,0x6c,0x06,
	0xc8,0xa0,0xff,0x97,0xd5,0x9f,0x0f,0xb4, 0x00,0xa3,0x23,0x40,0x0e,0x0b,0x0f,0x0e,
	0x98,0x06,0x01,0xa5,0x02,0x80,0x01,0xbe, 0x00,0xae,0x10,0xc0,0x00,0xa3,0x38,0xec,
	0x41,0x06,0x06,0xa2,0x00,0x35,0x01,0x34, 0x02,0x35,0xff,0x97,0x83,0x9e,0x20,0x48,
	0x28,0x00,0x43,0x02,0x58,0x01,0x20,0x40, 0x00,0xa8,0xec,0xc0,0x01,0xa0,0x04,0x60,
	0x04,0x6c,0x90,0x06,0xf0,0x6d,0xc0,0x46, 0x88,0x0a,0x00,0x00,0x40,0x42,0x0f,0x00,
	0xf0,0x65,0x83,0x60,0x04,0xec,0x08,0x38, 0x0f,0xec,0x1d,0xec,0x16,0xf4,0xff,0x97,
	0xbf,0x9f,0x07,0x09,0x01,0xa3,0x36,0xe4, 0x02,0x33,0x20,0xec,0x3b,0xec,0x18,0xb1,
	0x0a,0xa2,0x00,0x36,0x01,0x35,0xff,0x97, 0x5d,0x9e,0x03,0x60,0xf0,0x6d,0xc0,0x46,
	0x88,0x0a,0x00,0x00,0xf0,0x65,0x5f,0x06, 0x56,0x06,0x4d,0x06,0x44,0x06,0xf0,0x64,
	0x84,0x60,0x1e,0xec,0x0d,0x3b,0x12,0xf4, 0x12,0xe4,0x80,0x06,0x18,0xec,0x03,0x32,
	0x0f,0xec,0x99,0x06,0xff,0x97,0x9c,0x9f, 0x03,0x3a,0x00,0xaa,0x30,0xcd,0x15,0xec,
	0x13,0xf4,0x80,0xa2,0x52,0xf0,0x92,0x06, 0x16,0x0a,0x40,0xb2,0x93,0x06,0x05,0x80,
	0x2d,0xeb,0x2d,0xf4,0x2d,0xfc,0x2b,0xf4, 0x00,0xab,0x21,0xcd,0x1b,0xe4,0x2c,0xec,
	0x53,0x05,0x01,0xcd,0x80,0xa4,0x64,0xf0, 0x01,0xa3,0x24,0xf4,0x24,0xe4,0x02,0x33,
	0x59,0x06,0x3b,0xec,0x40,0x06,0x0b,0xa2, 0x01,0x36,0x00,0x34,0xff,0x97,0x22,0x9e,
	0x40,0x06,0x49,0x06,0x3f,0xe9,0x36,0xe9, 0xff,0x97,0x7c,0x9f,0x00,0xa8,0xdf,0xc1,
	0x00,0xa0,0x04,0x60,0x3c,0x6c,0x90,0x06, 0x99,0x06,0xa2,0x06,0xab,0x06,0xf0,0x6d,
	0x03,0x38,0xf6,0x87,0x88,0x0a,0x00,0x00, 0x70,0x65,0x83,0x60,0x05,0xec,0x18,0xec,
	0x0e,0xec,0x1c,0xec,0xff,0x97,0x5c,0x9f, 0x08,0x09,0x01,0xa3,0x00,0xa2,0x00,0x33,
	0x01,0x32,0x02,0x33,0x28,0xec,0x33,0xec, 0x0a,0xa2,0x6c,0xb1,0xff,0x97,0xfa,0x9d,
	0x28,0xec,0x21,0xec,0xff,0x97,0x56,0x9f, 0x03,0x60,0x70,0x6d,0x88,0x0a,0x00,0x00,
	0xf0,0x65,0x57,0x06,0x4e,0x06,0x45,0x06, 0xe0,0x64,0x81,0x60,0x09,0x3e,0x8a,0x06,
	0x36,0xf6,0x0a,0x39,0x15,0xf4,0x36,0xfe, 0x80,0x06,0x1c,0xec,0x89,0x06,0x2d,0xe4,
	0xf3,0xf7,0x32,0xc4,0x49,0x06,0x00,0x31, 0x40,0x06,0x51,0x06,0x2a,0xec,0x23,0xec,
	0xff,0x97,0x80,0x9f,0x01,0xa7,0xb3,0xf7, 0x06,0xc4,0x01,0x60,0x38,0xec,0x1c,0x6c,
	0x90,0x06,0x99,0x06,0xa2,0x06,0xf0,0x6d, 0x80,0xa1,0xc9,0xf0,0x66,0xe8,0x4b,0x06,
	0x00,0x33,0x40,0x06,0x51,0x06,0x2a,0xec, 0x33,0xec,0xff,0x97,0x51,0x9f,0x00,0xad,
	0xeb,0xcd,0x22,0x48,0x33,0x48,0x00,0xa7, 0x9a,0x02,0xe6,0xc1,0x00,0xa3,0x07,0x80,
	0x80,0xa1,0xc9,0xf0,0xe2,0xe8,0x52,0xe8, 0x12,0x48,0xe1,0x1c,0x91,0x02,0x0a,0xc1,
	0x01,0xb3,0x9d,0x02,0xf4,0xcc,0x01,0xa7, 0xd7,0x87,0x51,0x06,0x20,0xa2,0x4b,0x06,
	0xff,0x97,0x9a,0x9f,0xc6,0x87,0x00,0xa7, 0xcf,0x87,0xc0,0x46,0x80,0x65,0x81,0x60,
	0x00,0x7f,0xbb,0xec,0x0a,0x0a,0x10,0xec, 0x02,0xa1,0x1a,0xec,0x80,0xa3,0xff,0x97,
	0x13,0x9e,0x08,0x0b,0xba,0xec,0x12,0x28, 0x12,0xf4,0x12,0xfc,0x1a,0x20,0xbb,0xec,
	0x1b,0x28,0x1b,0xf4,0x1b,0xe4,0x18,0xec, 0xbd,0x06,0x01,0x60,0x80,0x6d,0xc0,0x46,
	0x08,0x80,0xff,0xff,0x08,0x80,0x80,0x00, 0x80,0x65,0x82,0x60,0x00,0x7f,0x02,0xec,
	0x39,0x50,0x3b,0xed,0x1a,0x20,0x3a,0x58, 0x22,0xa3,0xd3,0x1c,0x00,0xab,0x44,0xc1,
	0x3b,0xed,0x00,0xa1,0x5a,0x1e,0x3b,0x58, 0x10,0xec,0x22,0xa1,0x1a,0xec,0x80,0xa3,
	0xff,0x97,0xea,0x9d,0x03,0xec,0x00,0xab, 0x01,0xc1,0x00,0xa3,0x47,0x80,0x3b,0x58,
	0x1a,0x48,0x3b,0x58,0x5b,0x48,0x9a,0x02, 0x31,0xc0,0x3a,0x58,0x22,0xa3,0x01,0xa1,
	0xd1,0x14,0x3b,0xed,0x00,0xa1,0x5a,0x1e, 0x3b,0x58,0x01,0xb3,0x10,0xec,0x01,0xa1,
	0x1a,0xec,0x00,0xa3,0xff,0x97,0xd0,0x9d, 0x22,0x80,0x1b,0x0a,0x3b,0x58,0x1b,0x48,
	0x19,0xec,0x38,0x58,0x41,0xe8,0x89,0x48, 0x11,0x40,0x01,0xb3,0x1b,0xf6,0x1a,0xfe,
	0x3b,0x58,0x1a,0x40,0x3b,0x58,0x1a,0x48, 0x1f,0xa3,0x13,0x00,0x1b,0xf6,0x1a,0xfe,
	0x3b,0x58,0x1a,0x40,0x3b,0x58,0x1a,0x48, 0x3b,0x58,0x5b,0x48,0x9a,0x02,0x07,0xc1,
	0x3a,0x58,0x22,0xa3,0x00,0xa1,0xd1,0x14, 0x02,0x80,0xc0,0x06,0x00,0x80,0xc0,0x06,
	0x3a,0x58,0x22,0xa3,0xd3,0x1c,0x00,0xab, 0x08,0xc0,0x08,0x0b,0x1b,0x48,0x1b,0xf6,
	0x1b,0xfe,0x1a,0xec,0x02,0xa3,0x13,0x00, 0x00,0xab,0xce,0xc0,0x01,0xa3,0x18,0xec,
	0xbd,0x06,0x02,0x60,0x80,0x6d,0xc0,0x46, 0x18,0x01,0x80,0x00,0x3d,0x01,0x80,0x00,
	0x60,0x00,0x00,0xc3,0x61,0x00,0x00,0xc3, 0x62,0x00,0x00,0xc3,0x63,0x02,0xff,0xc3,
	0x64,0x02,0xff,0xc3,0x65,0x02,0x07,0xc3, 0x66,0x02,0x28,0xc3,0xb2,0x00,0x03,0xc3,
	0xb2,0x02,0x10,0xc3,0xae,0x02,0x10,0xc3, 0x3c,0x01,0x01,0xc3,0x20,0x06,0x01,0xc3,
	0x61,0x00,0x80,0xc3,0x61,0x00,0x00,0xc3, 0xb0,0x00,0xff,0xc3,0xb1,0x00,0x05,0xc2,
	0xb0,0x00,0x5a,0xc3,0xb1,0x00,0x05,0xc2, 0xb0,0x00,0x08,0xc4,0xb1,0x00,0x01,0xc2,
	0xb0,0x00,0x00,0xc4,0xb1,0x00,0x01,0xc2, 0xb0,0x00,0x80,0x83,0xb0,0x00,0x00,0x43,
	0xb1,0x00,0x01,0xc2,0x00,0x00,0x00,0xc5, 0xb1,0x00,0x02,0x82,0xb0,0x00,0x00,0x40,
	0xb0,0x00,0x00,0x81,0xb1,0x00,0x01,0x42, 0x00,0x00,0x00,0xc6,0xb0,0x00,0xff,0xc3,
	0xb1,0x00,0x05,0xc2,0x61,0x00,0x80,0xc3, 0x61,0x00,0x00,0xc3,0x84,0x05,0x00,0xc3,
	0x8c,0x05,0x20,0xc3,0x88,0x05,0x20,0xc3, 0xa0,0x00,0x00,0xc7,0x84,0x05,0x20,0xc3,
	0x40,0x01,0x00,0xc7,0x84,0x05,0x00,0xc3, 0xa0,0x00,0x00,0xc7,0x84,0x05,0x20,0xc3,
	0x50,0x00,0x00,0xc7,0x8c,0x05,0x00,0xc3, 0x0d,0x00,0x01,0xc3,0x0d,0x00,0x00,0xc3,
	0x0c,0x00,0x05,0xc2,0x0c,0x00,0x00,0xc2, 0x0c,0x00,0x00,0xc1,0x0d,0x00,0x01,0xc3,
	0x0d,0x00,0x01,0xc3,0x0d,0x00,0x00,0xc3, 0x0c,0x00,0x03,0xc2,0x0c,0x00,0x10,0xc4,
	0x0c,0x00,0x08,0xc4,0x0c,0x00,0x00,0xc4, 0x0c,0x00,0x00,0xc2,0x0d,0x00,0x0a,0xc3,
	0x0c,0x00,0x00,0xc1,0x0d,0x00,0x01,0xc3, 0x0d,0x00,0x01,0xc3,0x0d,0x00,0x00,0xc3,
	0x0c,0x00,0x06,0xc2,0x0d,0x00,0x01,0xc3, 0x0d,0x00,0x00,0xc3,0x0c,0x00,0x02,0xc2,
	0x0c,0x00,0x10,0xc4,0x0c,0x00,0x08,0xc4, 0x0c,0x00,0x00,0xc4,0x0c,0x00,0x00,0xc0,
	0x0d,0x00,0x01,0xc3,0x0d,0x00,0x01,0xc3, 0x0d,0x00,0x00,0xc3,0x0c,0x00,0x06,0xc2,
	0x0d,0x00,0x01,0xc3,0x0d,0x00,0x00,0xc3, 0x0c,0x00,0x20,0xc2,0x0c,0x00,0x10,0xc4,
	0x0c,0x00,0x08,0xc4,0x0c,0x00,0x00,0xc4, 0x0d,0x00,0x01,0xc3
};

BYTE m_mcuram3520[] = {
	0x08,0x80,0x00,0x00,0x00,0x00,0x00,0x54, 0xd8,0x0f,0x88,0x00,0x00,0x00,0x00,0x00,
	0x4e,0x80,0xc0,0x46,0x20,0x08,0x21,0x09, 0x21,0x0a,0x08,0x50,0x04,0xb1,0x91,0x02,
	0xfb,0xcd,0x11,0x08,0xc0,0x6b,0x12,0x08, 0x85,0x06,0x10,0x08,0xc0,0x6b,0x11,0x08,
	0x85,0x06,0x00,0xa0,0x10,0x09,0x11,0x0a, 0x08,0x50,0x04,0xb1,0x91,0x02,0xfb,0xcd,
	0x0f,0x09,0x40,0xa0,0x08,0x40,0x40,0xa0, 0x48,0x40,0x01,0xa0,0x88,0x40,0x0f,0x09,
	0x0f,0x0a,0x10,0x0b,0x08,0x58,0x10,0x50, 0x04,0xb1,0x04,0xb2,0x9a,0x02,0xf9,0xcd,
	0x00,0x90,0xf0,0x98,0xfe,0x87,0xc0,0x46, 0x12,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
	0xc0,0x97,0x80,0x00,0xa0,0x97,0x80,0x00, 0x00,0x94,0x80,0x00,0x1c,0x94,0x80,0x00,
	0x0c,0x06,0x80,0x00,0x00,0x83,0x80,0x00, 0x00,0x84,0x80,0x00,0xd8,0x0f,0x00,0x00,
	0x00,0x94,0x80,0x00,0x00,0x94,0x80,0x00, 0xff,0xff,0xff,0xff,0x00,0x98,0x80,0x00,
	0x00,0xa0,0x80,0x00,0xc0,0x46,0xc0,0x46, 0xc0,0x46,0xc0,0x46,0xc0,0x46,0xc0,0x46,
	0x00,0x65,0x0f,0x64,0xd8,0x6b,0x01,0x64, 0x00,0x90,0x22,0x98,0x01,0x6c,0xd0,0x6b,
	0x0f,0x6c,0x00,0x69,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x70,0x07,0xc0,0x46,0xf0,0x65,0x19,0x0b, 0x19,0x0e,0x1b,0x58,0x19,0x08,0x33,0x50,
	0x00,0x90,0x7e,0x9c,0x18,0x0d,0x28,0x40, 0x88,0xa0,0x40,0xf0,0x00,0x90,0x78,0x9c,
	0x16,0x0b,0x2c,0x48,0x18,0x40,0x00,0xeb, 0x03,0xa3,0x98,0x03,0x04,0xf6,0x24,0xfe,
	0x80,0xac,0x04,0xc8,0x27,0xec,0x00,0xac, 0x03,0xc1,0x01,0xa0,0xf0,0x6d,0x80,0xa7,
	0x80,0xa4,0x0f,0x08,0x39,0xec,0x00,0x90, 0xbd,0x9c,0x29,0x48,0x61,0xe8,0x09,0xf6,
	0x09,0xfe,0x08,0x08,0x00,0x90,0x02,0x9c, 0x0a,0x0b,0x1f,0x50,0x03,0x0b,0x1a,0x58,
	0x33,0x58,0xd2,0xea,0x08,0x0b,0x1a,0x50, 0xe7,0x87,0xc0,0x46,0x30,0x06,0x80,0x00,
	0x10,0x94,0x80,0x00,0x15,0x01,0x00,0x00, 0x00,0x94,0x80,0x00,0x14,0x94,0x80,0x00,
	0x1d,0x01,0x00,0x00,0x18,0x94,0x80,0x00, 0x08,0x94,0x80,0x00,0xf0,0x65,0x57,0x06,
	0x4e,0x06,0x45,0x06,0xe0,0x64,0x09,0xf4, 0x00,0xf4,0x09,0xe4,0x00,0xfc,0x8a,0x06,
	0x00,0xa7,0x91,0x06,0x80,0x06,0xba,0x05, 0x2d,0xcd,0x00,0xa6,0x63,0xa5,0x42,0x06,
	0x11,0xf6,0x09,0xfe,0x17,0x08,0x00,0x90, 0xd1,0x9b,0x43,0x06,0x19,0xfa,0x16,0x08,
	0x00,0x90,0xcc,0x9b,0x4a,0x06,0xd1,0x1d, 0x14,0x08,0x00,0x90,0xc7,0x9b,0x14,0x08,
	0xf5,0xa1,0x00,0x90,0xc3,0x9b,0x00,0xa4, 0x04,0x80,0xe3,0xff,0xa5,0x02,0x73,0x01,
	0x00,0xab,0x05,0xc0,0x0e,0x08,0x00,0x90, 0x13,0x9c,0x01,0xb4,0x03,0xf6,0xf4,0xc4,
	0x7a,0xa8,0x08,0xc1,0x01,0xa2,0x13,0xec, 0x43,0x04,0x1b,0xf4,0x1b,0xfc,0x01,0xb7,
	0x98,0x06,0x57,0x05,0xd3,0xcb,0x38,0xec, 0x1c,0x6c,0x90,0x06,0x99,0x06,0xa2,0x06,
	0xf0,0x6d,0xc0,0x46,0x08,0x80,0x00,0x00, 0x09,0x80,0x00,0x00,0x0a,0x80,0x00,0x00,
	0x0b,0x80,0x00,0x00,0x00,0x65,0x83,0x60, 0x00,0xa3,0x05,0x08,0x0c,0xa1,0x00,0xa2,
	0x00,0x33,0x01,0x33,0x02,0x33,0x00,0x90, 0x29,0x99,0x03,0x60,0x00,0x6d,0xc0,0x46,
	0x8c,0x0e,0x00,0x00,0xf0,0x65,0x5f,0x06, 0x56,0x06,0x4d,0x06,0x44,0x06,0xf0,0x64,
	0x7d,0x09,0x7e,0x0a,0x43,0xa3,0x00,0xa4, 0x13,0x40,0x0c,0x40,0x86,0x60,0x8b,0x06,
	0xff,0x97,0xe0,0x9f,0x7a,0x0b,0x7b,0x09, 0x7b,0x0a,0x00,0xa7,0x1c,0x50,0x89,0x06,
	0x7a,0x0e,0x90,0x06,0xba,0x06,0x69,0x80, 0x79,0x09,0x0b,0x48,0x00,0xab,0x62,0xc0,
	0x78,0x0a,0x14,0x58,0x55,0x58,0x2b,0xf4, 0x1b,0xfc,0x05,0x33,0xab,0xf0,0x9b,0xfe,
	0x03,0x33,0x6b,0xf0,0xdb,0xff,0x02,0x33, 0xeb,0xff,0x04,0x33,0x6c,0x0b,0x52,0x06,
	0x1a,0x50,0x0c,0xbb,0x1a,0x50,0x70,0x0b, 0x28,0xf2,0x21,0xec,0x00,0xfe,0x1a,0x50,
	0x6a,0xf0,0x57,0xc5,0x6d,0x0b,0x4a,0x06, 0x13,0x50,0x2b,0xfe,0x3f,0xa2,0x1a,0x00,
	0x01,0xaa,0x57,0xc0,0x04,0xaa,0x63,0xc0, 0x03,0xaa,0x00,0xc1,0x93,0x80,0x05,0xaa,
	0x00,0xc1,0x9c,0x80,0x0f,0xaa,0x6f,0xc0, 0x06,0xaa,0x7f,0xc0,0x07,0xaa,0x00,0xc1,
	0xa3,0x80,0x08,0xaa,0x00,0xc1,0x81,0x80, 0x09,0xaa,0x7f,0xc0,0x0b,0xaa,0x7d,0xc0,
	0x0a,0xaa,0x00,0xc1,0x9d,0x80,0x0c,0xaa, 0x78,0xc0,0x00,0xa0,0x0e,0xaa,0x00,0xc1,
	0x9c,0x80,0x03,0x3b,0x1a,0xf6,0x5a,0x0b, 0x02,0x39,0x2b,0x00,0x13,0x03,0x8a,0xf7,
	0x58,0x09,0x0b,0x00,0x1a,0x03,0x04,0x39, 0x52,0xf0,0x52,0xf8,0xcb,0xf7,0x15,0xec,
	0x1d,0x03,0xab,0xf0,0x9b,0xfe,0x00,0xab, 0x0d,0xc0,0x4f,0x0b,0x1a,0x58,0x52,0x0b,
	0x1a,0x50,0x00,0xa8,0x29,0xc0,0x05,0x3a, 0x01,0xa3,0x00,0xaa,0x01,0xc0,0x13,0xf4,
	0x1b,0xe4,0x4e,0x09,0x0b,0x50,0x33,0x58, 0x01,0xb3,0x33,0x50,0x43,0x06,0x1f,0x50,
	0x59,0x06,0x0b,0x48,0x01,0xb7,0x00,0xab, 0x8e,0xc0,0xff,0x97,0xd3,0x9e,0x5a,0x06,
	0x10,0x40,0x89,0x87,0x46,0x0b,0x4a,0x06, 0x13,0x50,0x2b,0xfe,0x3f,0xa2,0x1a,0x00,
	0x01,0xaa,0xa7,0xc1,0x09,0xf4,0x08,0xe4, 0x05,0x39,0x0a,0xf4,0x11,0xe4,0x80,0xa2,
	0x13,0x00,0x40,0x0a,0x00,0x90,0xc0,0x99, 0xbb,0x87,0xf0,0xa3,0x1b,0xf6,0xd8,0x87,
	0x53,0x06,0x5a,0x06,0x13,0x40,0x7f,0xa3, 0x2a,0xfe,0x9a,0x03,0x13,0xf6,0x00,0xab,
	0x0e,0xc0,0x4b,0x06,0x18,0x58,0x05,0x3b, 0x1a,0xf4,0x02,0x3b,0x12,0xe4,0x00,0x33,
	0x34,0x0b,0x00,0x90,0x31,0x9c,0xa4,0x87, 0x24,0x0a,0x01,0xa0,0x11,0x40,0xa0,0x87,
	0x4a,0x06,0x12,0x58,0x05,0x3b,0x94,0x06, 0x1a,0xf4,0x02,0x3b,0x00,0x30,0x01,0x33,
	0x12,0xe4,0x60,0x06,0x2b,0x0b,0x00,0x90, 0x9f,0x9c,0x92,0x87,0x7f,0xa2,0x93,0x03,
	0x1f,0xc0,0x01,0xa3,0x59,0x06,0x0b,0x40, 0x01,0xa0,0x8a,0x87,0x05,0xa1,0x26,0x08,
	0x00,0x90,0xf8,0x99,0x85,0x87,0x5a,0x06, 0x53,0x06,0x13,0x40,0x05,0x3a,0x09,0xf4,
	0x08,0xfc,0x11,0xf4,0x09,0xe4,0x1f,0x0a, 0xff,0x97,0xc0,0x9e,0x79,0x87,0x52,0x06,
	0x5b,0x06,0x1a,0x40,0x4b,0x06,0x18,0x58, 0x20,0xa2,0x02,0x3b,0x00,0x90,0x60,0x9c,
	0x6f,0x87,0x5a,0x06,0x13,0x40,0x01,0xa0, 0x6b,0x87,0x01,0xa0,0x00,0x90,0xc4,0x99,
	0x67,0x87,0x84,0xa1,0x14,0x08,0x00,0x90, 0xd5,0x99,0x62,0x87,0x88,0xa1,0x12,0x08,
	0x00,0x90,0xd0,0x99,0x5d,0x87,0xc0,0x46, 0x02,0x94,0x80,0x00,0x01,0x94,0x80,0x00,
	0xfc,0x9f,0x80,0x00,0x0c,0x94,0x80,0x00, 0xec,0x9f,0x80,0x00,0x04,0x94,0x80,0x00,
	0xff,0x9f,0x80,0x00,0xf8,0x9f,0x80,0x00, 0x30,0x06,0x80,0x00,0x1d,0x08,0x00,0x00,
	0xff,0xff,0xff,0xc0,0xff,0xff,0xff,0xbf, 0xf4,0x9f,0x80,0x00,0xf0,0x9f,0x80,0x00,
	0x71,0x08,0x00,0x00,0xc0,0x97,0x80,0x00, 0x02,0x06,0x00,0x00,0xf0,0x65,0x5f,0x06,
	0x56,0x06,0x4d,0x06,0x44,0x06,0xf0,0x64, 0x86,0x60,0x03,0x33,0x11,0x3b,0x02,0x32,
	0x1c,0xf4,0x80,0xa2,0x24,0xfc,0x12,0xf4, 0x14,0x03,0x01,0x34,0x1c,0xf2,0x24,0xfe,
	0xa2,0x06,0x1c,0xf1,0x24,0xff,0x1b,0xe7, 0x9c,0x00,0x0f,0x3f,0x23,0xec,0x00,0xa9,
	0x6d,0xcd,0x93,0x06,0x4f,0x0a,0x24,0xf1, 0x90,0x06,0x10,0x3a,0xe3,0xea,0x80,0xa4,
	0x5b,0xf0,0x14,0x00,0x99,0x06,0xa4,0x06, 0x00,0xa3,0x11,0x80,0x54,0xf6,0x0c,0xc5,
	0x00,0xa4,0xa4,0x05,0x09,0xc1,0x5c,0x06, 0x2c,0x03,0x00,0x34,0x3f,0xa4,0x22,0x00,
	0x17,0xc1,0x3a,0x48,0x00,0x3c,0x22,0x40, 0x01,0xb7,0x01,0xb3,0x99,0x02,0x4e,0xcd,
	0x9a,0xf0,0x82,0xe8,0x15,0x28,0x96,0x48, 0xd2,0x48,0x14,0xf6,0x00,0xac,0xe5,0xca,
	0x00,0xa4,0xa4,0x05,0xe2,0xc0,0x5c,0x06, 0x2c,0x03,0x00,0x34,0x3f,0xa4,0x22,0x00,
	0xe7,0xc0,0x01,0xaa,0x22,0xc0,0x02,0xaa, 0x25,0xc0,0x03,0xaa,0x3f,0xc0,0x08,0xaa,
	0x40,0xc0,0x04,0xaa,0x4d,0xc0,0x05,0xaa, 0x52,0xc0,0x06,0xaa,0x54,0xc0,0x07,0xaa,
	0xdb,0xc1,0x2d,0xf2,0x42,0x06,0xae,0xe9, 0x14,0x58,0x32,0xf1,0x96,0xeb,0x76,0xf0,
	0x00,0xa2,0x00,0x33,0x03,0x80,0x2c,0x0b, 0x01,0xb2,0x9a,0x02,0x04,0xc0,0x43,0x06,
	0x1d,0x58,0x2d,0xeb,0xb5,0x02,0xf6,0xc9, 0x00,0x3b,0xc6,0x87,0x00,0x3c,0x22,0x48,
	0x3a,0x40,0x01,0xb7,0xc1,0x87,0x00,0x3a, 0x16,0x40,0x42,0x06,0x14,0x58,0x55,0x06,
	0x00,0x31,0x9a,0x06,0x01,0x3b,0x4e,0x06, 0x00,0xad,0x02,0xc0,0x1a,0x48,0x15,0x02,
	0x32,0xc0,0x41,0x06,0x0a,0x58,0x12,0xeb, 0xb2,0x02,0xf5,0xc3,0x00,0xa1,0x06,0x60,
	0x08,0xec,0x3c,0x6c,0x90,0x06,0x99,0x06, 0xa2,0x06,0xab,0x06,0xf0,0x6d,0x00,0x3a,
	0x16,0x40,0xa2,0x87,0x00,0x3a,0x14,0xf6, 0x14,0x0a,0x24,0xfe,0x14,0x40,0x14,0x0d,
	0x01,0xb2,0x16,0x40,0x60,0xa2,0x2a,0x40, 0x01,0xa4,0x2a,0x48,0x14,0x02,0xfc,0xc1,
	0x93,0x87,0x02,0x3a,0x32,0x01,0x12,0xf6, 0x00,0x3c,0x12,0xfe,0x22,0x40,0x8c,0x87,
	0x03,0x3c,0x05,0x33,0x04,0x34,0x88,0x87, 0x04,0x3a,0x01,0xba,0x04,0x32,0x00,0xaa,
	0x00,0xcc,0x82,0x87,0x05,0x3b,0x80,0x87, 0x53,0x06,0x00,0x39,0xaa,0x06,0xb1,0x06,
	0x7b,0x87,0xc0,0x46,0x30,0x06,0x80,0x00, 0x40,0x42,0x0f,0x00,0xb8,0x00,0x80,0x00,
	0xba,0x00,0x80,0x00,0xf0,0x65,0x5f,0x06, 0x56,0x06,0x4d,0x06,0x44,0x06,0xf0,0x64,
	0x84,0x60,0x17,0xec,0x0e,0x3a,0x80,0x06, 0x91,0x06,0x0c,0xec,0x02,0x33,0x0f,0x3a,
	0x00,0xaf,0x44,0xcd,0x0d,0x3b,0x1b,0xf4, 0x1b,0xe4,0x9a,0x06,0x13,0xf6,0x1b,0xfe,
	0x00,0x33,0x80,0xa3,0x5b,0x02,0x13,0x03, 0x1b,0xf6,0x6e,0x06,0x1b,0xfe,0x00,0xa5,
	0x0f,0xb6,0x01,0x33,0x10,0x80,0x01,0xaa, 0x46,0xc0,0x00,0xaa,0x37,0xc1,0x00,0x3b,
	0x51,0x06,0x4a,0x06,0x00,0xf4,0x00,0xe4, 0x00,0x90,0x9c,0x9a,0x00,0xa8,0x39,0xc0,
	0x01,0xb5,0xaf,0x02,0x23,0xcd,0x04,0xb4, 0xa3,0x48,0x20,0x28,0x33,0x40,0xe2,0x48,
	0x3f,0xa1,0x0a,0x00,0x07,0xaa,0xe6,0xc1, 0x1d,0x09,0x00,0xf2,0xc3,0xe8,0x0a,0x58,
	0x18,0xf1,0x94,0x06,0xc0,0xea,0x1b,0x0a, 0x40,0xf0,0x93,0x06,0x02,0xec,0x00,0xa3,
	0x60,0x06,0xa4,0x06,0x14,0xec,0x02,0x80, 0x01,0xb3,0x5b,0x05,0x03,0xc0,0x0a,0x58,
	0x12,0xea,0xa2,0x02,0xf8,0xc9,0x01,0xb5, 0x64,0x06,0xaf,0x02,0xdb,0xcc,0x04,0x60,
	0x38,0xec,0x3c,0x6c,0x90,0x06,0x99,0x06, 0xa2,0x06,0xab,0x06,0xf0,0x6d,0x04,0xaa,
	0x0e,0xc0,0x00,0xf4,0x00,0xa3,0x01,0xa1, 0x32,0xec,0x00,0xe4,0x00,0x90,0x62,0x9a,
	0x00,0xa8,0xc5,0xc1,0x00,0xa7,0xea,0x87, 0x51,0x06,0x01,0x3b,0x4a,0x06,0xb9,0x87,
	0x02,0x3a,0x1a,0x01,0x32,0x40,0x00,0xa3, 0x01,0xa1,0x32,0xec,0xb2,0x87,0xc0,0x46,
	0x30,0x06,0x80,0x00,0x40,0x42,0x0f,0x00, 0x30,0x65,0x1d,0xec,0x0b,0xf4,0x07,0x09,
	0x83,0x60,0x00,0xf4,0x14,0xec,0x02,0x31, 0x02,0xe4,0x1b,0xe4,0x15,0xa1,0x04,0x08,
	0x01,0x35,0x00,0x34,0xff,0x97,0xb2,0x9e, 0x03,0x60,0x30,0x6d,0xb1,0x00,0x03,0x71,
	0xbc,0x0e,0x00,0x00,0xf0,0x65,0x1b,0x0a, 0x20,0xa3,0x13,0x40,0x04,0xb2,0x13,0x40,
	0x08,0xba,0x13,0x40,0x18,0x08,0x96,0xa1, 0x04,0x58,0x18,0x0b,0x49,0xf0,0x02,0x80,
	0x01,0xbb,0x00,0xab,0x03,0xc0,0x02,0x58, 0x12,0xeb,0x8a,0x02,0xf8,0xc9,0x14,0x0d,
	0x11,0x0a,0x0a,0xa4,0x00,0xa7,0x20,0xa6, 0x2f,0x40,0x10,0x0b,0x10,0x58,0x02,0x80,
	0x01,0xbb,0x00,0xab,0x03,0xc0,0x11,0x58, 0x09,0xea,0x1e,0xa9,0xf8,0xc9,0x2e,0x40,
	0x0a,0x0b,0x10,0x58,0x02,0x80,0x01,0xbb, 0x00,0xab,0x03,0xc0,0x11,0x58,0x09,0xea,
	0x78,0xa9,0xf8,0xc9,0x01,0xbc,0x00,0xac, 0xe6,0xc1,0x06,0x0b,0x01,0xa0,0x1c,0x40,
	0xf0,0x6d,0xc0,0x46,0x88,0x05,0x80,0x00, 0x30,0x06,0x80,0x00,0x40,0x42,0x0f,0x00,
	0x84,0x05,0x80,0x00,0x8c,0x05,0x80,0x00, 0x10,0x65,0x04,0xec,0x08,0x08,0x83,0x60,
	0x00,0xa3,0x54,0xb0,0x0d,0xa1,0x00,0xa2, 0x00,0x33,0x01,0x33,0x02,0x33,0xff,0x97,
	0x5d,0x9e,0x00,0xac,0x01,0xc0,0xff,0x97, 0xad,0x9f,0x03,0x60,0x10,0x6d,0xc0,0x46,
	0xbc,0x0e,0x00,0x00,0x00,0x65,0x81,0x60, 0x6a,0x06,0x03,0xb2,0x00,0xf4,0x11,0x40,
	0x00,0xe4,0x01,0xa1,0x00,0xa3,0xff,0x97, 0x87,0x9f,0x01,0x60,0x01,0xa0,0x00,0x6d,
	0x10,0x65,0x81,0x60,0x6c,0x06,0x03,0xb4, 0x00,0xf4,0x01,0xa1,0x22,0xec,0x80,0xa3,
	0x00,0xe4,0xff,0x97,0x79,0x9f,0x01,0x60, 0x20,0x48,0x10,0x6d,0xf0,0x65,0x47,0x06,
	0x80,0x64,0x06,0xf4,0x0f,0xf4,0x1c,0xec, 0x15,0xec,0x36,0xe4,0x3f,0xe4,0xe3,0xf7,
	0x09,0xc4,0x23,0xec,0x30,0xec,0x39,0xec, 0xff,0x97,0x66,0x9f,0x04,0xec,0x20,0xec,
	0x04,0x6c,0x90,0x06,0xf0,0x6d,0x09,0x0b, 0x80,0xa1,0x18,0x48,0x98,0x06,0xff,0x97,
	0xc9,0x9f,0x39,0xec,0x23,0xec,0x30,0xec, 0x2a,0xec,0xff,0x97,0x55,0x9f,0x43,0x06,
	0x04,0xec,0x00,0xa1,0x18,0x48,0xff,0x97, 0xbd,0x9f,0xe8,0x87,0x01,0x94,0x80,0x00,
	0xf0,0x65,0x57,0x06,0x46,0x06,0xc0,0x64, 0x00,0xf4,0x09,0xf4,0x07,0xe4,0x08,0xe4,
	0x19,0xf6,0x09,0xfe,0x01,0xa4,0x0c,0x00, 0xa4,0x06,0x7f,0xa4,0xa1,0x03,0x80,0xa5,
	0x88,0x06,0x1c,0xfc,0x19,0xf4,0x2d,0xf4, 0x09,0xfe,0x2c,0x03,0x00,0xa8,0x1e,0xcd,
	0x00,0xa6,0xaa,0x06,0x00,0xa3,0x98,0x05, 0x1d,0xc0,0x00,0xa9,0x08,0xc0,0x14,0xa3,
	0x25,0x48,0x29,0x02,0x04,0xc0,0x01,0xbb, 0x1b,0xf4,0x1b,0xfc,0x00,0xab,0xf7,0xc1,
	0x53,0x06,0x3b,0x03,0x1b,0x48,0x93,0x15, 0x00,0xa3,0x9c,0x05,0x02,0xc1,0x01,0xb7,
	0x3f,0xf4,0x3f,0xe4,0x01,0xb6,0x33,0xf4, 0x1b,0xe4,0x98,0x02,0xe2,0xcc,0x0c,0x6c,
	0x90,0x06,0x9a,0x06,0xf0,0x6d,0x53,0x06, 0x95,0x1d,0x3b,0x03,0x1d,0x40,0x00,0xa9,
	0xea,0xc0,0x14,0xa3,0x25,0x48,0x29,0x02, 0xe6,0xc0,0x01,0xbb,0x1b,0xf4,0x1b,0xfc,
	0x00,0xab,0xf7,0xc1,0xe0,0x87,0xc0,0x46, 0x07,0x0b,0x00,0xf6,0x00,0xfe,0x09,0xf6,
	0x18,0x40,0x09,0xfe,0x01,0xb3,0x19,0x40, 0x04,0x09,0x60,0xa3,0x0b,0x40,0x01,0xa2,
	0x0b,0x48,0x1a,0x02,0xfc,0xc1,0x70,0x07, 0xb8,0x00,0x80,0x00,0xba,0x00,0x80,0x00,
	0x30,0x65,0x03,0xf1,0x07,0x09,0x18,0xea, 0x0c,0x58,0x40,0xf0,0x00,0xa3,0x06,0x0d,
	0x02,0x80,0x01,0xb3,0xab,0x02,0x03,0xc0, 0x0a,0x58,0x12,0xeb,0x90,0x02,0xf8,0xc2,
	0x30,0x6d,0xc0,0x46,0x30,0x06,0x80,0x00, 0x40,0x42,0x0f,0x00,0x30,0x65,0x29,0x0b,
	0x80,0xa2,0x1a,0x40,0x00,0xf4,0x00,0xa2, 0x1a,0x40,0x05,0xfc,0x4f,0xb3,0xff,0xa2,
	0x25,0x08,0x1a,0x40,0x05,0xa3,0x0c,0xf6, 0x03,0x40,0x24,0xfe,0x03,0xa1,0x03,0x48,
	0x21,0x0a,0x19,0x02,0xfb,0xc1,0x21,0x0b, 0x5a,0xa1,0x19,0x40,0x05,0xa3,0x13,0x40,
	0x10,0xec,0x03,0xa1,0x03,0x48,0x1c,0x0a, 0x19,0x02,0xfb,0xc1,0x1b,0x0b,0x29,0xfa,
	0x19,0x40,0x01,0xa3,0x13,0x40,0x10,0xec, 0x03,0xa1,0x03,0x48,0x16,0x0a,0x19,0x02,
	0xfb,0xc1,0x16,0x0b,0x2d,0xf6,0x2d,0xfe, 0x1d,0x40,0x01,0xa3,0x13,0x40,0x11,0xec,
	0x03,0xa2,0x0b,0x48,0x10,0x08,0x13,0x00, 0xfb,0xc1,0x10,0x0a,0x13,0x40,0x01,0xa3,
	0x03,0x40,0x03,0xa1,0x03,0x48,0x0c,0x0a, 0x19,0x02,0xfb,0xc1,0x0b,0x0b,0x1c,0x40,
	0x01,0xa3,0x13,0x40,0x10,0xec,0x03,0xa1, 0x03,0x48,0x07,0x0a,0x19,0x02,0xfb,0xc1,
	0x06,0x0b,0xff,0xa1,0x19,0x40,0x05,0xa3, 0x13,0x40,0x03,0xa1,0x13,0x48,0x19,0x02,
	0xfc,0xc1,0x30,0x6d,0x61,0x00,0x80,0x00, 0xb1,0x00,0x80,0x00,0xb0,0x00,0x80,0x00,
	0x10,0x65,0x29,0x0b,0x80,0xa2,0x1a,0x40, 0x00,0xa2,0x1a,0x40,0x04,0xf4,0x4f,0xb3,
	0xff,0xa2,0x26,0x08,0x1a,0x40,0x05,0xa3, 0x03,0x40,0x24,0xfc,0x03,0xa1,0x03,0x48,
	0x22,0x0a,0x19,0x02,0xfb,0xc1,0x22,0x0b, 0x5a,0xa1,0x19,0x40,0x05,0xa3,0x13,0x40,
	0x10,0xec,0x03,0xa1,0x03,0x48,0x1d,0x0a, 0x19,0x02,0xfb,0xc1,0x1c,0x0b,0x21,0xfa,
	0x19,0x40,0x01,0xa3,0x13,0x40,0x10,0xec, 0x03,0xa1,0x03,0x48,0x17,0x0a,0x19,0x02,
	0xfb,0xc1,0x17,0x0b,0x24,0xf6,0x24,0xfe, 0x1c,0x40,0x01,0xa3,0x13,0x40,0x10,0xec,
	0x03,0xa1,0x03,0x48,0x11,0x0a,0x19,0x02, 0xfb,0xc1,0x11,0x0b,0x80,0xa1,0x19,0x40,
	0x01,0xa3,0x13,0x40,0x10,0xec,0x03,0xa1, 0x03,0x48,0x0c,0x0a,0x19,0x02,0xfb,0xc1,
	0x02,0xa3,0x13,0x40,0x10,0xec,0x03,0xa1, 0x03,0x48,0x08,0x0a,0x19,0x02,0xfb,0xc1,
	0x07,0x0b,0xff,0xa1,0x18,0x48,0x19,0x40, 0x05,0xa3,0x13,0x40,0x03,0xa1,0x13,0x48,
	0x19,0x02,0xfc,0xc1,0x10,0x6d,0xc0,0x46, 0x61,0x00,0x80,0x00,0xb1,0x00,0x80,0x00,
	0xb0,0x00,0x80,0x00,0xf0,0x65,0x32,0x0d, 0x00,0xf4,0x0c,0xec,0x06,0xfc,0x80,0xa1,
	0x28,0x48,0xff,0x97,0x43,0x9f,0x2f,0x0b, 0x80,0xa2,0x1a,0x40,0x00,0xa2,0x1a,0x40,
	0x2d,0x08,0x4f,0xb3,0xff,0xa2,0x1a,0x40, 0x05,0xa3,0x03,0x40,0x03,0xa1,0x03,0x48,
	0x29,0x0a,0x19,0x02,0xfb,0xc1,0x29,0x0b, 0x5a,0xa1,0x19,0x40,0x05,0xa3,0x13,0x40,
	0x10,0xec,0x03,0xa1,0x03,0x48,0x24,0x0a, 0x19,0x02,0xfb,0xc1,0x23,0x0b,0x31,0xfa,
	0x19,0x40,0x01,0xa3,0x13,0x40,0x10,0xec, 0x03,0xa1,0x03,0x48,0x1e,0x0a,0x19,0x02,
	0xfb,0xc1,0x1e,0x0b,0x36,0xf6,0x36,0xfe, 0x1e,0x40,0x01,0xa3,0x13,0x40,0x10,0xec,
	0x03,0xa1,0x03,0x48,0x18,0x0a,0x19,0x02, 0xfb,0xc1,0x18,0x0b,0x80,0xa1,0x19,0x40,
	0x01,0xa3,0x13,0x40,0x03,0xa1,0x13,0x48, 0x19,0x02,0xfc,0xc1,0x00,0xac,0x10,0xcd,
	0x02,0xa3,0x11,0x0a,0x11,0x0f,0x12,0x0e, 0x00,0xa0,0x9c,0x06,0x03,0xa1,0x63,0x06,
	0x13,0x40,0x13,0x48,0x19,0x02,0xfc,0xc1, 0x3b,0x48,0x01,0xb0,0x33,0x40,0xa0,0x02,
	0xf5,0xc1,0x0a,0x0b,0xff,0xa2,0x08,0x09, 0x1a,0x40,0x05,0xa3,0x0b,0x40,0x03,0xa2,
	0x0b,0x48,0x1a,0x02,0xfc,0xc1,0x28,0x48, 0x00,0xa1,0xff,0x97,0xe7,0x9e,0xf0,0x6d,
	0x01,0x94,0x80,0x00,0x61,0x00,0x80,0x00, 0xb1,0x00,0x80,0x00,0xb0,0x00,0x80,0x00,
	0x18,0x01,0x80,0x00,0x40,0x07,0xc0,0x46, 0x00,0x65,0x00,0xa8,0x03,0xc0,0x02,0x08,
	0x05,0xa1,0xff,0x97,0x17,0x9e,0x00,0x6d, 0x02,0x06,0x00,0x00,0xf0,0x65,0x47,0x06,
	0x80,0x64,0x84,0x60,0x07,0xec,0x6c,0x06, 0xc8,0xa0,0xff,0x97,0xb1,0x9e,0x0f,0xb4,
	0x00,0xa3,0x23,0x40,0x0e,0x0b,0x0f,0x0e, 0x98,0x06,0x01,0xa5,0x02,0x80,0x01,0xbe,
	0x00,0xae,0x10,0xc0,0x00,0xa3,0x38,0xec, 0x41,0x06,0x06,0xa2,0x00,0x35,0x01,0x34,
	0x02,0x35,0xff,0x97,0x0f,0x9d,0x20,0x48, 0x28,0x00,0x43,0x02,0x58,0x01,0x20,0x40,
	0x00,0xa8,0xec,0xc0,0x01,0xa0,0x04,0x60, 0x04,0x6c,0x90,0x06,0xf0,0x6d,0xc0,0x46,
	0x44,0x0f,0x00,0x00,0x40,0x42,0x0f,0x00, 0xf0,0x65,0x83,0x60,0x04,0xec,0x08,0x38,
	0x0f,0xec,0x1d,0xec,0x16,0xf4,0xff,0x97, 0xbf,0x9f,0x07,0x09,0x01,0xa3,0x36,0xe4,
	0x02,0x33,0x20,0xec,0x3b,0xec,0x18,0xb1, 0x0a,0xa2,0x00,0x36,0x01,0x35,0xff,0x97,
	0xe9,0x9c,0x03,0x60,0xf0,0x6d,0xc0,0x46, 0x44,0x0f,0x00,0x00,0xf0,0x65,0x5f,0x06,
	0x56,0x06,0x4d,0x06,0x44,0x06,0xf0,0x64, 0x84,0x60,0x1e,0xec,0x0d,0x3b,0x12,0xf4,
	0x12,0xe4,0x80,0x06,0x18,0xec,0x03,0x32, 0x0f,0xec,0x99,0x06,0xff,0x97,0x9c,0x9f,
	0x03,0x3a,0x00,0xaa,0x30,0xcd,0x15,0xec, 0x13,0xf4,0x80,0xa2,0x52,0xf0,0x92,0x06,
	0x16,0x0a,0x40,0xb2,0x93,0x06,0x05,0x80, 0x2d,0xeb,0x2d,0xf4,0x2d,0xfc,0x2b,0xf4,
	0x00,0xab,0x21,0xcd,0x1b,0xe4,0x2c,0xec, 0x53,0x05,0x01,0xcd,0x80,0xa4,0x64,0xf0,
	0x01,0xa3,0x24,0xf4,0x24,0xe4,0x02,0x33, 0x59,0x06,0x3b,0xec,0x40,0x06,0x0b,0xa2,
	0x01,0x36,0x00,0x34,0xff,0x97,0xae,0x9c, 0x40,0x06,0x49,0x06,0x3f,0xe9,0x36,0xe9,
	0xff,0x97,0x7c,0x9f,0x00,0xa8,0xdf,0xc1, 0x00,0xa0,0x04,0x60,0x3c,0x6c,0x90,0x06,
	0x99,0x06,0xa2,0x06,0xab,0x06,0xf0,0x6d, 0x03,0x38,0xf6,0x87,0x44,0x0f,0x00,0x00,
	0x70,0x65,0x83,0x60,0x05,0xec,0x18,0xec, 0x0e,0xec,0x1c,0xec,0xff,0x97,0x5c,0x9f,
	0x08,0x09,0x01,0xa3,0x00,0xa2,0x00,0x33, 0x01,0x32,0x02,0x33,0x28,0xec,0x33,0xec,
	0x0a,0xa2,0x6c,0xb1,0xff,0x97,0x86,0x9c, 0x28,0xec,0x21,0xec,0xff,0x97,0x56,0x9f,
	0x03,0x60,0x70,0x6d,0x44,0x0f,0x00,0x00, 0xf0,0x65,0x57,0x06,0x4e,0x06,0x45,0x06,
	0xe0,0x64,0x81,0x60,0x09,0x3e,0x8a,0x06, 0x36,0xf6,0x0a,0x39,0x15,0xf4,0x36,0xfe,
	0x80,0x06,0x1c,0xec,0x89,0x06,0x2d,0xe4, 0xf3,0xf7,0x32,0xc4,0x49,0x06,0x00,0x31,
	0x40,0x06,0x51,0x06,0x2a,0xec,0x23,0xec, 0xff,0x97,0x80,0x9f,0x01,0xa7,0xb3,0xf7,
	0x06,0xc4,0x01,0x60,0x38,0xec,0x1c,0x6c, 0x90,0x06,0x99,0x06,0xa2,0x06,0xf0,0x6d,
	0x80,0xa1,0xc9,0xf0,0x66,0xe8,0x4b,0x06, 0x00,0x33,0x40,0x06,0x51,0x06,0x2a,0xec,
	0x33,0xec,0xff,0x97,0x51,0x9f,0x00,0xad, 0xeb,0xcd,0x22,0x48,0x33,0x48,0x00,0xa7,
	0x9a,0x02,0xe6,0xc1,0x00,0xa3,0x07,0x80, 0x80,0xa1,0xc9,0xf0,0xe2,0xe8,0x52,0xe8,
	0x12,0x48,0xe1,0x1c,0x91,0x02,0x0a,0xc1, 0x01,0xb3,0x9d,0x02,0xf4,0xcc,0x01,0xa7,
	0xd7,0x87,0x51,0x06,0x20,0xa2,0x4b,0x06, 0xff,0x97,0x9a,0x9f,0xc6,0x87,0x00,0xa7,
	0xcf,0x87,0xc0,0x46,0x80,0x65,0x82,0x60, 0x00,0x7f,0x02,0xec,0x39,0x50,0x3b,0xed,
	0x1a,0x20,0x3a,0x58,0x22,0xa3,0xd3,0x1c, 0x00,0xab,0x44,0xc1,0x3b,0xed,0x00,0xa1,
	0x5a,0x1e,0x3b,0x58,0x10,0xec,0x22,0xa1, 0x1a,0xec,0x80,0xa3,0xff,0x97,0x94,0x9c,
	0x03,0xec,0x00,0xab,0x01,0xc1,0x00,0xa3, 0x47,0x80,0x3b,0x58,0x1a,0x48,0x3b,0x58,
	0x5b,0x48,0x9a,0x02,0x31,0xc0,0x3a,0x58, 0x22,0xa3,0x01,0xa1,0xd1,0x14,0x3b,0xed,
	0x00,0xa1,0x5a,0x1e,0x3b,0x58,0x01,0xb3, 0x10,0xec,0x01,0xa1,0x1a,0xec,0x00,0xa3,
	0xff,0x97,0x7a,0x9c,0x22,0x80,0x1b,0x0a, 0x3b,0x58,0x1b,0x48,0x19,0xec,0x38,0x58,
	0x41,0xe8,0x89,0x48,0x11,0x40,0x01,0xb3, 0x1b,0xf6,0x1a,0xfe,0x3b,0x58,0x1a,0x40,
	0x3b,0x58,0x1a,0x48,0x1f,0xa3,0x13,0x00, 0x1b,0xf6,0x1a,0xfe,0x3b,0x58,0x1a,0x40,
	0x3b,0x58,0x1a,0x48,0x3b,0x58,0x5b,0x48, 0x9a,0x02,0x07,0xc1,0x3a,0x58,0x22,0xa3,
	0x00,0xa1,0xd1,0x14,0x02,0x80,0xc0,0x06, 0x00,0x80,0xc0,0x06,0x3a,0x58,0x22,0xa3,
	0xd3,0x1c,0x00,0xab,0x08,0xc0,0x08,0x0b, 0x1b,0x48,0x1b,0xf6,0x1b,0xfe,0x1a,0xec,
	0x02,0xa3,0x13,0x00,0x00,0xab,0xce,0xc0, 0x01,0xa3,0x18,0xec,0xbd,0x06,0x02,0x60,
	0x80,0x6d,0xc0,0x46,0x18,0x01,0x80,0x00, 0x3d,0x01,0x80,0x00,0x60,0x00,0x00,0xc3,
	0x61,0x00,0x00,0xc3,0x62,0x00,0x00,0xc3, 0x63,0x00,0x00,0xc3,0x64,0x00,0xff,0xc3,
	0x65,0x00,0x07,0xc3,0x68,0x00,0x02,0xc3, 0x42,0x00,0x04,0xc3,0x3c,0x01,0x40,0xc3,
	0x3b,0x01,0x20,0xc3,0x28,0x01,0x00,0xc3, 0x20,0x06,0x01,0xc3,0x61,0x00,0x80,0xc3,
	0x61,0x00,0x00,0xc3,0xb0,0x00,0xff,0xc3, 0xb1,0x00,0x05,0xc2,0xb0,0x00,0x5a,0xc3,
	0xb1,0x00,0x05,0xc2,0xb0,0x00,0x08,0xc4, 0xb1,0x00,0x01,0xc2,0xb0,0x00,0x00,0xc4,
	0xb1,0x00,0x01,0xc2,0xb0,0x00,0x80,0x83, 0xb0,0x00,0x00,0x43,0xb1,0x00,0x01,0xc2,
	0x00,0x00,0x00,0xc5,0xb1,0x00,0x02,0x82, 0xb0,0x00,0x00,0x40,0xb0,0x00,0x00,0x81,
	0xb1,0x00,0x01,0x42,0x00,0x00,0x00,0xc6, 0xb0,0x00,0xff,0xc3,0xb1,0x00,0x05,0xc2,
	0x61,0x00,0x80,0xc3,0x61,0x00,0x00,0xc3, 0x84,0x05,0x00,0xc3,0x8c,0x05,0x20,0xc3,
	0x88,0x05,0x20,0xc3,0xa0,0x00,0x00,0xc7, 0x84,0x05,0x20,0xc3,0x40,0x01,0x00,0xc7,
	0x84,0x05,0x00,0xc3,0xa0,0x00,0x00,0xc7, 0x84,0x05,0x20,0xc3,0x50,0x00,0x00,0xc7,
	0x8c,0x05,0x00,0xc3,0x0d,0x00,0x01,0xc3, 0x0d,0x00,0x00,0xc3,0x0c,0x00,0x05,0xc2,
	0x0c,0x00,0x00,0xc2,0x0c,0x00,0x00,0xc1, 0x0d,0x00,0x01,0xc3,0x0d,0x00,0x01,0xc3,
	0x0d,0x00,0x00,0xc3,0x0c,0x00,0x03,0xc2, 0x0c,0x00,0x10,0xc4,0x0c,0x00,0x08,0xc4,
	0x0c,0x00,0x00,0xc4,0x0c,0x00,0x00,0xc2, 0x0d,0x00,0x0a,0xc3,0x0c,0x00,0x00,0xc1,
	0x0d,0x00,0x01,0xc3,0x0d,0x00,0x01,0xc3, 0x0d,0x00,0x00,0xc3,0x0c,0x00,0x06,0xc2,
	0x0d,0x00,0x01,0xc3,0x0d,0x00,0x00,0xc3, 0x0c,0x00,0x02,0xc2,0x0c,0x00,0x10,0xc4,
	0x0c,0x00,0x08,0xc4,0x0c,0x00,0x00,0xc4, 0x0c,0x00,0x00,0xc0,0x0d,0x00,0x01,0xc3,
	0x0d,0x00,0x01,0xc3,0x0d,0x00,0x00,0xc3, 0x0c,0x00,0x06,0xc2,0x0d,0x00,0x01,0xc3,
	0x0d,0x00,0x00,0xc3,0x0c,0x00,0x20,0xc2, 0x0c,0x00,0x10,0xc4,0x0c,0x00,0x08,0xc4,
	0x0c,0x00,0x00,0xc4,0x0d,0x00,0x01,0xc3
};


BYTE m_mcuram[] = {
#if 1
	0x08,0x80,0x00,0x00,0x00,0x00,0x00,0x54, 0x1c,0x0b,0x88,0x00,0x00,0x00,0x00,0x00,
	0x4e,0x80,0xc0,0x46,0x20,0x08,0x21,0x09, 0x21,0x0a,0x08,0x50,0x04,0xb1,0x91,0x02,
	0xfb,0xcd,0x11,0x08,0xc0,0x6b,0x12,0x08, 0x85,0x06,0x10,0x08,0xc0,0x6b,0x11,0x08,
	0x85,0x06,0x00,0xa0,0x10,0x09,0x11,0x0a, 0x08,0x50,0x04,0xb1,0x91,0x02,0xfb,0xcd,
	0x0f,0x09,0x40,0xa0,0x08,0x40,0x40,0xa0, 0x48,0x40,0x01,0xa0,0x88,0x40,0x0f,0x09,
	0x0f,0x0a,0x10,0x0b,0x08,0x58,0x10,0x50, 0x04,0xb1,0x04,0xb2,0x9a,0x02,0xf9,0xcd,
	0x00,0x90,0x60,0x98,0xfe,0x87,0xc0,0x46, 0x12,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
	0xb0,0x97,0x80,0x00,0xa0,0x97,0x80,0x00, 0x00,0x94,0x80,0x00,0x08,0x94,0x80,0x00,
	0x0c,0x06,0x80,0x00,0x00,0x83,0x80,0x00, 0x00,0x84,0x80,0x00,0x1c,0x0b,0x00,0x00,
	0x00,0x94,0x80,0x00,0x00,0x94,0x80,0x00, 0xff,0xff,0xff,0xff,0x00,0x94,0x80,0x00,
	0xc0,0x97,0x80,0x00,0xc0,0x46,0xc0,0x46, 0xc0,0x46,0xc0,0x46,0xc0,0x46,0xc0,0x46,
	0x00,0x65,0x0f,0x64,0xd8,0x6b,0x01,0x64, 0x00,0x90,0x22,0x98,0x01,0x6c,0xd0,0x6b,
	0x0f,0x6c,0x00,0x69,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x70,0x07,0xc0,0x46,0x00,0x65,0x83,0x60, 0x00,0xa3,0x05,0x08,0x0c,0xa1,0x00,0xa2,
	0x00,0x33,0x01,0x33,0x02,0x33,0x00,0x90, 0xb1,0x98,0x03,0x60,0x00,0x6d,0xc0,0x46,
	0xd0,0x09,0x00,0x00,0xf0,0x65,0x5f,0x06, 0x56,0x06,0x4d,0x06,0x44,0x06,0xf0,0x64,
	0x45,0x0e,0x00,0xa4,0x86,0x60,0x34,0x50, 0xff,0x97,0xe4,0x9f,0x43,0x09,0x44,0x0a,
	0x88,0x06,0x44,0x09,0x14,0x50,0x00,0xa7, 0x0c,0xba,0x33,0x58,0x8a,0x06,0xb9,0x06,
	0x93,0x06,0x51,0x06,0x01,0xb3,0x33,0x50, 0x0f,0x50,0x3f,0x09,0x0a,0x48,0x01,0xb7,
	0x00,0xaa,0xf6,0xc0,0x3d,0x0a,0x14,0x58, 0x55,0x58,0x2b,0xf4,0x1b,0xfc,0x05,0x33,
	0xab,0xf0,0x9b,0xfe,0x04,0x33,0x6b,0xf0, 0xdb,0xff,0x02,0x33,0xeb,0xff,0x03,0x33,
	0x33,0x0b,0x4a,0x06,0x1a,0x50,0x5b,0x06, 0x1a,0x50,0x35,0x0b,0x1a,0x50,0x35,0x0a,
	0x28,0xf2,0x43,0x06,0x21,0xec,0x00,0xfe, 0x1a,0x50,0x6a,0xf0,0x01,0xc5,0x32,0x0a,
	0x1a,0x50,0x2a,0xfe,0x3f,0xa3,0x13,0x00, 0x04,0xab,0x26,0xc0,0x00,0xa0,0x05,0xab,
	0x42,0xc0,0x04,0x3b,0x1a,0xf6,0x2d,0x0b, 0x02,0x39,0x2b,0x00,0x13,0x03,0x8a,0xf7,
	0x2b,0x09,0x0b,0x00,0x1a,0x03,0x03,0x39, 0x52,0xf0,0x52,0xf8,0xcb,0xf7,0x15,0xec,
	0x1d,0x03,0xab,0xf0,0x9b,0xfe,0x00,0xab, 0x0d,0xc0,0x21,0x0b,0x1a,0x58,0x25,0x0b,
	0x1a,0x50,0x00,0xa8,0x17,0xc0,0x05,0x39, 0x01,0xa3,0x00,0xa9,0x01,0xc0,0x0b,0xf4,
	0x1b,0xe4,0x5a,0x06,0x13,0x50,0x33,0x58, 0xab,0x87,0x7f,0xa3,0x9a,0x03,0x0d,0xc0,
	0x43,0x06,0x18,0x58,0x05,0x3b,0x1a,0xf4, 0x02,0x3b,0x12,0xe4,0x00,0x33,0x1a,0x0b,
	0x00,0x90,0x86,0x9a,0xcd,0x87,0xf0,0xa3, 0x1b,0xf6,0xea,0x87,0x42,0x06,0x12,0x58,
	0x05,0x3b,0x94,0x06,0x1a,0xf4,0x02,0x3b, 0x00,0x30,0x01,0x33,0x12,0xe4,0x60,0x06,
	0x11,0x0b,0x00,0x90,0xf5,0x9a,0xbc,0x87, 0x42,0x06,0x10,0x58,0x02,0x3b,0x20,0xa2,
	0x00,0x90,0xd2,0x9a,0xb5,0x87,0xc0,0x46, 0x04,0x94,0x80,0x00,0x00,0x94,0x80,0x00,
	0xfc,0x9f,0x80,0x00,0xec,0x9f,0x80,0x00, 0xff,0x9f,0x80,0x00,0xf8,0x9f,0x80,0x00,
	0x30,0x06,0x80,0x00,0xc1,0x05,0x00,0x00, 0x7d,0x05,0x00,0x00,0xff,0xff,0xff,0xc0,
	0xff,0xff,0xff,0xbf,0xf4,0x9f,0x80,0x00, 0xc0,0x97,0x80,0x00,0xf0,0x65,0x5f,0x06,
	0x56,0x06,0x4d,0x06,0x44,0x06,0xf0,0x64, 0x86,0x60,0x03,0x33,0x11,0x3b,0x02,0x32,
	0x1c,0xf4,0x80,0xa2,0x24,0xfc,0x12,0xf4, 0x14,0x03,0x01,0x34,0x1c,0xf2,0x24,0xfe,
	0xa2,0x06,0x1c,0xf1,0x24,0xff,0x1b,0xe7, 0x9c,0x00,0x0f,0x3f,0x23,0xec,0x00,0xa9,
	0x6d,0xcd,0x93,0x06,0x4f,0x0a,0x24,0xf1, 0x90,0x06,0x10,0x3a,0xe3,0xea,0x80,0xa4,
	0x5b,0xf0,0x14,0x00,0x99,0x06,0xa4,0x06, 0x00,0xa3,0x11,0x80,0x54,0xf6,0x0c,0xc5,
	0x00,0xa4,0xa4,0x05,0x09,0xc1,0x5c,0x06, 0x2c,0x03,0x00,0x34,0x3f,0xa4,0x22,0x00,
	0x17,0xc1,0x3a,0x48,0x00,0x3c,0x22,0x40, 0x01,0xb7,0x01,0xb3,0x99,0x02,0x4e,0xcd,
	0x9a,0xf0,0x82,0xe8,0x15,0x28,0x96,0x48, 0xd2,0x48,0x14,0xf6,0x00,0xac,0xe5,0xca,
	0x00,0xa4,0xa4,0x05,0xe2,0xc0,0x5c,0x06, 0x2c,0x03,0x00,0x34,0x3f,0xa4,0x22,0x00,
	0xe7,0xc0,0x01,0xaa,0x22,0xc0,0x02,0xaa, 0x25,0xc0,0x03,0xaa,0x3f,0xc0,0x08,0xaa,
	0x40,0xc0,0x04,0xaa,0x4d,0xc0,0x05,0xaa, 0x52,0xc0,0x06,0xaa,0x54,0xc0,0x07,0xaa,
	0xdb,0xc1,0x2d,0xf2,0x42,0x06,0xae,0xe9, 0x14,0x58,0x32,0xf1,0x96,0xeb,0x76,0xf0,
	0x00,0xa2,0x00,0x33,0x03,0x80,0x2c,0x0b, 0x01,0xb2,0x9a,0x02,0x04,0xc0,0x43,0x06,
	0x1d,0x58,0x2d,0xeb,0xb5,0x02,0xf6,0xc9, 0x00,0x3b,0xc6,0x87,0x00,0x3c,0x22,0x48,
	0x3a,0x40,0x01,0xb7,0xc1,0x87,0x00,0x3a, 0x16,0x40,0x42,0x06,0x14,0x58,0x55,0x06,
	0x00,0x31,0x9a,0x06,0x01,0x3b,0x4e,0x06, 0x00,0xad,0x02,0xc0,0x1a,0x48,0x15,0x02,
	0x32,0xc0,0x41,0x06,0x0a,0x58,0x12,0xeb, 0xb2,0x02,0xf5,0xc3,0x00,0xa1,0x06,0x60,
	0x08,0xec,0x3c,0x6c,0x90,0x06,0x99,0x06, 0xa2,0x06,0xab,0x06,0xf0,0x6d,0x00,0x3a,
	0x16,0x40,0xa2,0x87,0x00,0x3a,0x14,0xf6, 0x14,0x0a,0x24,0xfe,0x14,0x40,0x14,0x0d,
	0x01,0xb2,0x16,0x40,0x60,0xa2,0x2a,0x40, 0x01,0xa4,0x2a,0x48,0x14,0x02,0xfc,0xc1,
	0x93,0x87,0x02,0x3a,0x32,0x01,0x12,0xf6, 0x00,0x3c,0x12,0xfe,0x22,0x40,0x8c,0x87,
	0x03,0x3c,0x05,0x33,0x04,0x34,0x88,0x87, 0x04,0x3a,0x01,0xba,0x04,0x32,0x00,0xaa,
	0x00,0xcc,0x82,0x87,0x05,0x3b,0x80,0x87, 0x53,0x06,0x00,0x39,0xaa,0x06,0xb1,0x06,
	0x7b,0x87,0xc0,0x46,0x30,0x06,0x80,0x00, 0x40,0x42,0x0f,0x00,0xb8,0x00,0x80,0x00,
	0xba,0x00,0x80,0x00,0xf0,0x65,0x5f,0x06, 0x56,0x06,0x4d,0x06,0x44,0x06,0xf0,0x64,
	0x84,0x60,0x17,0xec,0x0e,0x3a,0x80,0x06, 0x91,0x06,0x0c,0xec,0x02,0x33,0x0f,0x3a,
	0x00,0xaf,0x44,0xcd,0x0d,0x3b,0x1b,0xf4, 0x1b,0xe4,0x9a,0x06,0x13,0xf6,0x1b,0xfe,
	0x00,0x33,0x80,0xa3,0x5b,0x02,0x13,0x03, 0x1b,0xf6,0x6e,0x06,0x1b,0xfe,0x00,0xa5,
	0x0f,0xb6,0x01,0x33,0x10,0x80,0x01,0xaa, 0x46,0xc0,0x00,0xaa,0x37,0xc1,0x00,0x3b,
	0x51,0x06,0x4a,0x06,0x00,0xf4,0x00,0xe4, 0x00,0x90,0x28,0x99,0x00,0xa8,0x39,0xc0,
	0x01,0xb5,0xaf,0x02,0x23,0xcd,0x04,0xb4, 0xa3,0x48,0x20,0x28,0x33,0x40,0xe2,0x48,
	0x3f,0xa1,0x0a,0x00,0x07,0xaa,0xe6,0xc1, 0x1d,0x09,0x00,0xf2,0xc3,0xe8,0x0a,0x58,
	0x18,0xf1,0x94,0x06,0xc0,0xea,0x1b,0x0a, 0x40,0xf0,0x93,0x06,0x02,0xec,0x00,0xa3,
	0x60,0x06,0xa4,0x06,0x14,0xec,0x02,0x80, 0x01,0xb3,0x5b,0x05,0x03,0xc0,0x0a,0x58,
	0x12,0xea,0xa2,0x02,0xf8,0xc9,0x01,0xb5, 0x64,0x06,0xaf,0x02,0xdb,0xcc,0x04,0x60,
	0x38,0xec,0x3c,0x6c,0x90,0x06,0x99,0x06, 0xa2,0x06,0xab,0x06,0xf0,0x6d,0x04,0xaa,
	0x0e,0xc0,0x00,0xf4,0x00,0xa3,0x01,0xa1, 0x32,0xec,0x00,0xe4,0x00,0x90,0xee,0x98,
	0x00,0xa8,0xc5,0xc1,0x00,0xa7,0xea,0x87, 0x51,0x06,0x01,0x3b,0x4a,0x06,0xb9,0x87,
	0x02,0x3a,0x1a,0x01,0x32,0x40,0x00,0xa3, 0x01,0xa1,0x32,0xec,0xb2,0x87,0xc0,0x46,
	0x30,0x06,0x80,0x00,0x40,0x42,0x0f,0x00, 0x30,0x65,0x1d,0xec,0x0b,0xf4,0x07,0x09,
	0x83,0x60,0x00,0xf4,0x14,0xec,0x02,0x31, 0x02,0xe4,0x1b,0xe4,0x15,0xa1,0x04,0x08,
	0x01,0x35,0x00,0x34,0xff,0x97,0xb2,0x9e, 0x03,0x60,0x30,0x6d,0xb1,0x00,0x03,0x71,
	0x00,0x0a,0x00,0x00,0x00,0x65,0x06,0x08, 0x83,0x60,0x00,0xa3,0x54,0xb0,0x0d,0xa1,
	0x00,0xa2,0x00,0x33,0x01,0x33,0x02,0x33, 0xff,0x97,0xa0,0x9e,0x03,0x60,0x00,0x6d,
	0x00,0x0a,0x00,0x00,0x00,0x65,0x81,0x60, 0x6a,0x06,0x03,0xb2,0x00,0xf4,0x11,0x40,
	0x00,0xe4,0x01,0xa1,0x00,0xa3,0xff,0x97, 0xcf,0x9f,0x01,0x60,0x01,0xa0,0x00,0x6d,
	0x10,0x65,0x81,0x60,0x6c,0x06,0x03,0xb4, 0x00,0xf4,0x01,0xa1,0x22,0xec,0x80,0xa3,
	0x00,0xe4,0xff,0x97,0xc1,0x9f,0x01,0x60, 0x20,0x48,0x10,0x6d,0xf0,0x65,0x07,0xf4,
	0x0e,0xf4,0x1c,0xec,0x15,0xec,0x3f,0xe4, 0x36,0xe4,0xe3,0xf7,0x07,0xc4,0x23,0xec,
	0x38,0xec,0x31,0xec,0xff,0x97,0xb0,0x9f, 0x04,0xec,0x20,0xec,0xf0,0x6d,0x80,0xa1,
	0xb3,0xa0,0xff,0x97,0xcf,0x9f,0x31,0xec, 0x23,0xec,0x38,0xec,0x2a,0xec,0xff,0x97,
	0xa3,0x9f,0x00,0xa1,0x04,0xec,0xb3,0xa0, 0xff,0x97,0xc4,0x9f,0xed,0x87,0xc0,0x46,
	0xf0,0x65,0x57,0x06,0x46,0x06,0xc0,0x64, 0x00,0xf4,0x09,0xf4,0x07,0xe4,0x08,0xe4,
	0x19,0xf6,0x09,0xfe,0x01,0xa4,0x0c,0x00, 0xa4,0x06,0x7f,0xa4,0xa1,0x03,0x80,0xa5,
	0x88,0x06,0x1c,0xfc,0x19,0xf4,0x2d,0xf4, 0x09,0xfe,0x2c,0x03,0x00,0xa8,0x1e,0xcd,
	0x00,0xa6,0xaa,0x06,0x00,0xa3,0x98,0x05, 0x1d,0xc0,0x00,0xa9,0x08,0xc0,0x14,0xa3,
	0x25,0x48,0x29,0x02,0x04,0xc0,0x01,0xbb, 0x1b,0xf4,0x1b,0xfc,0x00,0xab,0xf7,0xc1,
	0x53,0x06,0x3b,0x03,0x1b,0x48,0x93,0x15, 0x00,0xa3,0x9c,0x05,0x02,0xc1,0x01,0xb7,
	0x3f,0xf4,0x3f,0xe4,0x01,0xb6,0x33,0xf4, 0x1b,0xe4,0x98,0x02,0xe2,0xcc,0x0c,0x6c,
	0x90,0x06,0x9a,0x06,0xf0,0x6d,0x53,0x06, 0x95,0x1d,0x3b,0x03,0x1d,0x40,0x00,0xa9,
	0xea,0xc0,0x14,0xa3,0x25,0x48,0x29,0x02, 0xe6,0xc0,0x01,0xbb,0x1b,0xf4,0x1b,0xfc,
	0x00,0xab,0xf7,0xc1,0xe0,0x87,0xc0,0x46, 0x07,0x0b,0x00,0xf6,0x00,0xfe,0x09,0xf6,
	0x18,0x40,0x09,0xfe,0x01,0xb3,0x19,0x40, 0x04,0x09,0x60,0xa3,0x0b,0x40,0x01,0xa2,
	0x0b,0x48,0x1a,0x02,0xfc,0xc1,0x70,0x07, 0xb8,0x00,0x80,0x00,0xba,0x00,0x80,0x00,
	0x30,0x65,0x03,0xf1,0x07,0x09,0x18,0xea, 0x0c,0x58,0x40,0xf0,0x00,0xa3,0x06,0x0d,
	0x02,0x80,0x01,0xb3,0xab,0x02,0x03,0xc0, 0x0a,0x58,0x12,0xeb,0x90,0x02,0xf8,0xc2,
	0x30,0x6d,0xc0,0x46,0x30,0x06,0x80,0x00, 0x40,0x42,0x0f,0x00,0x40,0x07,0xc0,0x46,
	0x00,0x65,0x00,0xa8,0x03,0xc0,0x02,0x08, 0x05,0xa1,0xff,0x97,0x43,0x9f,0x00,0x6d,
	0x02,0x06,0x00,0x00,0xf0,0x65,0x47,0x06, 0x80,0x64,0x84,0x60,0x07,0xec,0x6c,0x06,
	0xc8,0xa0,0xff,0x97,0xd5,0x9f,0x0f,0xb4, 0x00,0xa3,0x23,0x40,0x0e,0x0b,0x0f,0x0e,
	0x98,0x06,0x01,0xa5,0x02,0x80,0x01,0xbe, 0x00,0xae,0x10,0xc0,0x00,0xa3,0x38,0xec,
	0x41,0x06,0x06,0xa2,0x00,0x35,0x01,0x34, 0x02,0x35,0xff,0x97,0x83,0x9e,0x20,0x48,
	0x28,0x00,0x43,0x02,0x58,0x01,0x20,0x40, 0x00,0xa8,0xec,0xc0,0x01,0xa0,0x04,0x60,
	0x04,0x6c,0x90,0x06,0xf0,0x6d,0xc0,0x46, 0x88,0x0a,0x00,0x00,0x40,0x42,0x0f,0x00,
	0xf0,0x65,0x83,0x60,0x04,0xec,0x08,0x38, 0x0f,0xec,0x1d,0xec,0x16,0xf4,0xff,0x97,
	0xbf,0x9f,0x07,0x09,0x01,0xa3,0x36,0xe4, 0x02,0x33,0x20,0xec,0x3b,0xec,0x18,0xb1,
	0x0a,0xa2,0x00,0x36,0x01,0x35,0xff,0x97, 0x5d,0x9e,0x03,0x60,0xf0,0x6d,0xc0,0x46,
	0x88,0x0a,0x00,0x00,0xf0,0x65,0x5f,0x06, 0x56,0x06,0x4d,0x06,0x44,0x06,0xf0,0x64,
	0x84,0x60,0x1e,0xec,0x0d,0x3b,0x12,0xf4, 0x12,0xe4,0x80,0x06,0x18,0xec,0x03,0x32,
	0x0f,0xec,0x99,0x06,0xff,0x97,0x9c,0x9f, 0x03,0x3a,0x00,0xaa,0x30,0xcd,0x15,0xec,
	0x13,0xf4,0x80,0xa2,0x52,0xf0,0x92,0x06, 0x16,0x0a,0x40,0xb2,0x93,0x06,0x05,0x80,
	0x2d,0xeb,0x2d,0xf4,0x2d,0xfc,0x2b,0xf4, 0x00,0xab,0x21,0xcd,0x1b,0xe4,0x2c,0xec,
	0x53,0x05,0x01,0xcd,0x80,0xa4,0x64,0xf0, 0x01,0xa3,0x24,0xf4,0x24,0xe4,0x02,0x33,
	0x59,0x06,0x3b,0xec,0x40,0x06,0x0b,0xa2, 0x01,0x36,0x00,0x34,0xff,0x97,0x22,0x9e,
	0x40,0x06,0x49,0x06,0x3f,0xe9,0x36,0xe9, 0xff,0x97,0x7c,0x9f,0x00,0xa8,0xdf,0xc1,
	0x00,0xa0,0x04,0x60,0x3c,0x6c,0x90,0x06, 0x99,0x06,0xa2,0x06,0xab,0x06,0xf0,0x6d,
	0x03,0x38,0xf6,0x87,0x88,0x0a,0x00,0x00, 0x70,0x65,0x83,0x60,0x05,0xec,0x18,0xec,
	0x0e,0xec,0x1c,0xec,0xff,0x97,0x5c,0x9f, 0x08,0x09,0x01,0xa3,0x00,0xa2,0x00,0x33,
	0x01,0x32,0x02,0x33,0x28,0xec,0x33,0xec, 0x0a,0xa2,0x6c,0xb1,0xff,0x97,0xfa,0x9d,
	0x28,0xec,0x21,0xec,0xff,0x97,0x56,0x9f, 0x03,0x60,0x70,0x6d,0x88,0x0a,0x00,0x00,
	0xf0,0x65,0x57,0x06,0x4e,0x06,0x45,0x06, 0xe0,0x64,0x81,0x60,0x09,0x3e,0x8a,0x06,
	0x36,0xf6,0x0a,0x39,0x15,0xf4,0x36,0xfe, 0x80,0x06,0x1c,0xec,0x89,0x06,0x2d,0xe4,
	0xf3,0xf7,0x32,0xc4,0x49,0x06,0x00,0x31, 0x40,0x06,0x51,0x06,0x2a,0xec,0x23,0xec,
	0xff,0x97,0x80,0x9f,0x01,0xa7,0xb3,0xf7, 0x06,0xc4,0x01,0x60,0x38,0xec,0x1c,0x6c,
	0x90,0x06,0x99,0x06,0xa2,0x06,0xf0,0x6d, 0x80,0xa1,0xc9,0xf0,0x66,0xe8,0x4b,0x06,
	0x00,0x33,0x40,0x06,0x51,0x06,0x2a,0xec, 0x33,0xec,0xff,0x97,0x51,0x9f,0x00,0xad,
	0xeb,0xcd,0x22,0x48,0x33,0x48,0x00,0xa7, 0x9a,0x02,0xe6,0xc1,0x00,0xa3,0x07,0x80,
	0x80,0xa1,0xc9,0xf0,0xe2,0xe8,0x52,0xe8, 0x12,0x48,0xe1,0x1c,0x91,0x02,0x0a,0xc1,
	0x01,0xb3,0x9d,0x02,0xf4,0xcc,0x01,0xa7, 0xd7,0x87,0x51,0x06,0x20,0xa2,0x4b,0x06,
	0xff,0x97,0x9a,0x9f,0xc6,0x87,0x00,0xa7, 0xcf,0x87,0xc0,0x46,0x80,0x65,0x81,0x60,
	0x00,0x7f,0xbb,0xec,0x0a,0x0a,0x10,0xec, 0x02,0xa1,0x1a,0xec,0x80,0xa3,0xff,0x97,
	0x13,0x9e,0x08,0x0b,0xba,0xec,0x12,0x28, 0x12,0xf4,0x12,0xfc,0x1a,0x20,0xbb,0xec,
	0x1b,0x28,0x1b,0xf4,0x1b,0xe4,0x18,0xec, 0xbd,0x06,0x01,0x60,0x80,0x6d,0xc0,0x46,
	0x08,0x80,0xff,0xff,0x08,0x80,0x80,0x00, 0x80,0x65,0x82,0x60,0x00,0x7f,0x02,0xec,
	0x39,0x50,0x3b,0xed,0x1a,0x20,0x3a,0x58, 0x22,0xa3,0xd3,0x1c,0x00,0xab,0x44,0xc1,
	0x3b,0xed,0x00,0xa1,0x5a,0x1e,0x3b,0x58, 0x10,0xec,0x22,0xa1,0x1a,0xec,0x80,0xa3,
	0xff,0x97,0xea,0x9d,0x03,0xec,0x00,0xab, 0x01,0xc1,0x00,0xa3,0x47,0x80,0x3b,0x58,
	0x1a,0x48,0x3b,0x58,0x5b,0x48,0x9a,0x02, 0x31,0xc0,0x3a,0x58,0x22,0xa3,0x01,0xa1,
	0xd1,0x14,0x3b,0xed,0x00,0xa1,0x5a,0x1e, 0x3b,0x58,0x01,0xb3,0x10,0xec,0x01,0xa1,
	0x1a,0xec,0x00,0xa3,0xff,0x97,0xd0,0x9d, 0x22,0x80,0x1b,0x0a,0x3b,0x58,0x1b,0x48,
	0x19,0xec,0x38,0x58,0x41,0xe8,0x89,0x48, 0x11,0x40,0x01,0xb3,0x1b,0xf6,0x1a,0xfe,
	0x3b,0x58,0x1a,0x40,0x3b,0x58,0x1a,0x48, 0x1f,0xa3,0x13,0x00,0x1b,0xf6,0x1a,0xfe,
	0x3b,0x58,0x1a,0x40,0x3b,0x58,0x1a,0x48, 0x3b,0x58,0x5b,0x48,0x9a,0x02,0x07,0xc1,
	0x3a,0x58,0x22,0xa3,0x00,0xa1,0xd1,0x14, 0x02,0x80,0xc0,0x06,0x00,0x80,0xc0,0x06,
	0x3a,0x58,0x22,0xa3,0xd3,0x1c,0x00,0xab, 0x08,0xc0,0x08,0x0b,0x1b,0x48,0x1b,0xf6,
	0x1b,0xfe,0x1a,0xec,0x02,0xa3,0x13,0x00, 0x00,0xab,0xce,0xc0,0x01,0xa3,0x18,0xec,
	0xbd,0x06,0x02,0x60,0x80,0x6d,0xc0,0x46, 0x18,0x01,0x80,0x00,0x3d,0x01,0x80,0x00,
	0x60,0x00,0x00,0xc3,0x61,0x00,0x00,0xc3, 0x62,0x00,0x00,0xc3,0x63,0x00,0xff,0xc3,
	0x64,0x00,0xff,0xc3,0x65,0x00,0x07,0xc3, 0x66,0x00,0x28,0xc3,0xb2,0x00,0x02,0xc3,
	0xb2,0x05,0x10,0xc3,0xae,0x05,0x10,0xc3, 0x3c,0x01,0x01,0xc3,0x20,0x06,0x01,0xc3,
	0x61,0x00,0x80,0xc3,0x61,0x00,0x00,0xc3, 0xb0,0x00,0xff,0xc3,0xb1,0x00,0x05,0xc2,
	0xb0,0x00,0x5a,0xc3,0xb1,0x00,0x05,0xc2, 0xb0,0x00,0x08,0xc4,0xb1,0x00,0x01,0xc2,
	0xb0,0x00,0x00,0xc4,0xb1,0x00,0x01,0xc2, 0xb0,0x00,0x80,0x83,0xb0,0x00,0x00,0x43,
	0xb1,0x00,0x01,0xc2,0x00,0x00,0x00,0xc5, 0xb1,0x00,0x02,0x82,0xb0,0x00,0x00,0x40,
	0xb0,0x00,0x00,0x81,0xb1,0x00,0x01,0x42, 0x00,0x00,0x00,0xc6,0xb0,0x00,0xff,0xc3,
	0xb1,0x00,0x05,0xc2,0x61,0x00,0x80,0xc3, 0x61,0x00,0x00,0xc3,0x84,0x05,0x00,0xc3,
	0x8c,0x05,0x20,0xc3,0x88,0x05,0x20,0xc3, 0xa0,0x00,0x00,0xc7,0x84,0x05,0x20,0xc3,
	0x40,0x01,0x00,0xc7,0x84,0x05,0x00,0xc3, 0xa0,0x00,0x00,0xc7,0x84,0x05,0x20,0xc3,
	0x50,0x00,0x00,0xc7,0x8c,0x05,0x00,0xc3, 0x0d,0x00,0x01,0xc3,0x0d,0x00,0x00,0xc3,
	0x0c,0x00,0x05,0xc2,0x0c,0x00,0x00,0xc2, 0x0c,0x00,0x00,0xc1,0x0d,0x00,0x01,0xc3,
	0x0d,0x00,0x01,0xc3,0x0d,0x00,0x00,0xc3, 0x0c,0x00,0x03,0xc2,0x0c,0x00,0x10,0xc4,
	0x0c,0x00,0x08,0xc4,0x0c,0x00,0x00,0xc4, 0x0c,0x00,0x00,0xc2,0x0d,0x00,0x0a,0xc3,
	0x0c,0x00,0x00,0xc1,0x0d,0x00,0x01,0xc3, 0x0d,0x00,0x01,0xc3,0x0d,0x00,0x00,0xc3,
	0x0c,0x00,0x06,0xc2,0x0d,0x00,0x01,0xc3, 0x0d,0x00,0x00,0xc3,0x0c,0x00,0x02,0xc2,
	0x0c,0x00,0x10,0xc4,0x0c,0x00,0x08,0xc4, 0x0c,0x00,0x00,0xc4,0x0c,0x00,0x00,0xc0,
	0x0d,0x00,0x01,0xc3,0x0d,0x00,0x01,0xc3, 0x0d,0x00,0x00,0xc3,0x0c,0x00,0x06,0xc2,
	0x0d,0x00,0x01,0xc3,0x0d,0x00,0x00,0xc3, 0x0c,0x00,0x20,0xc2,0x0c,0x00,0x10,0xc4,
	0x0c,0x00,0x08,0xc4,0x0c,0x00,0x00,0xc4, 0x0d,0x00,0x01,0xc3

#else

		0x08,0x80,0x00,0x00,0x00,0x00,0x00,0x54, 0x80,0x0b,0x88,0x00,0x00,0x00,0x00,0x00,
	0x4e,0x80,0xc0,0x46,0x20,0x08,0x21,0x09, 0x21,0x0a,0x08,0x50,0x04,0xb1,0x91,0x02,
	0xfb,0xcd,0x11,0x08,0xc0,0x6b,0x12,0x08, 0x85,0x06,0x10,0x08,0xc0,0x6b,0x11,0x08,
	0x85,0x06,0x00,0xa0,0x10,0x09,0x11,0x0a, 0x08,0x50,0x04,0xb1,0x91,0x02,0xfb,0xcd,
	0x0f,0x09,0x40,0xa0,0x08,0x40,0x40,0xa0, 0x48,0x40,0x01,0xa0,0x88,0x40,0x0f,0x09,
	0x0f,0x0a,0x10,0x0b,0x08,0x58,0x10,0x50, 0x04,0xb1,0x04,0xb2,0x9a,0x02,0xf9,0xcd,
	0x00,0x90,0x60,0x98,0xfe,0x87,0xc0,0x46, 0x12,0x00,0x00,0x00,0x13,0x00,0x00,0x00,
	0xc0,0x9f,0x80,0x00,0x80,0x9f,0x80,0x00, 0x00,0x98,0x80,0x00,0x04,0x98,0x80,0x00,
	0x0c,0x06,0x80,0x00,0x00,0x83,0x80,0x00, 0x00,0x84,0x80,0x00,0x80,0x0b,0x00,0x00,
	0x00,0x98,0x80,0x00,0x00,0x98,0x80,0x00, 0xff,0xff,0xff,0xff,0x00,0x98,0x80,0x00,
	0x00,0xa0,0x80,0x00,0xc0,0x46,0xc0,0x46, 0xc0,0x46,0xc0,0x46,0xc0,0x46,0xc0,0x46,
	0x00,0x65,0x0f,0x64,0xd8,0x6b,0x01,0x64, 0x00,0x90,0x22,0x98,0x01,0x6c,0xd0,0x6b,
	0x0f,0x6c,0x00,0x69,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x70,0x07,0xc0,0x46,0x00,0x65,0x83,0x60, 0x00,0xa3,0x05,0x08,0x01,0xa1,0x00,0xa2,
	0x00,0x33,0x01,0x33,0x02,0x33,0x00,0x90, 0xf9,0x98,0x03,0x60,0x00,0x6d,0xc0,0x46,
	0x60,0x0a,0x00,0x00,0xf0,0x65,0x5f,0x06, 0x56,0x06,0x4d,0x06,0x44,0x06,0xf0,0x64,
	0x90,0x60,0x00,0xa4,0x22,0xa3,0x07,0x79, 0xcc,0x14,0xff,0x97,0xe3,0x9f,0x65,0x0b,
	0x65,0x0a,0x1c,0x50,0x14,0x50,0x65,0x0a, 0x65,0x09,0x0c,0xbb,0x06,0x32,0x65,0x0f,
	0x01,0xa6,0xa0,0x06,0x9a,0x06,0x89,0x06, 0x63,0x09,0x0b,0x48,0x00,0xab,0x59,0xc0,
	0x62,0x0b,0x1a,0x58,0x5b,0x58,0x02,0x32, 0x03,0x33,0x03,0x3a,0x13,0xf4,0x1b,0xfc,
	0x05,0x33,0x93,0xf0,0x9b,0xfe,0x9b,0x06, 0xd3,0xff,0x04,0x33,0x55,0x0b,0x10,0xf2,
	0x55,0xf0,0x42,0x06,0x02,0x39,0x1a,0x50, 0x53,0x06,0x1a,0x50,0x4b,0x06,0x1a,0x50,
	0x03,0x3a,0x00,0xfe,0xed,0xff,0x52,0xf0, 0x4a,0xc5,0x55,0x0b,0x03,0x3a,0x3b,0x50,
	0x13,0xfe,0x3f,0xa2,0x1a,0x00,0x01,0xaa, 0x4a,0xc0,0x04,0xaa,0x56,0xc0,0x05,0xaa,
	0x77,0xc0,0x06,0xaa,0x5e,0xc0,0x07,0xaa, 0x79,0xc0,0x08,0xaa,0x60,0xc0,0x09,0xaa,
	0x5e,0xc0,0x0b,0xaa,0x5c,0xc0,0x0a,0xaa, 0x7e,0xc0,0x00,0xa0,0x0c,0xaa,0x57,0xc0,
	0x59,0x06,0x0a,0xf6,0x47,0x0b,0x03,0x39, 0x0b,0x00,0x13,0x03,0x46,0x0a,0xad,0xf7,
	0x13,0x00,0x1d,0x03,0x04,0x3a,0x6d,0xf0, 0xd1,0xf7,0x6d,0xf8,0x0d,0x03,0xab,0xf0,
	0x9b,0xfe,0x03,0x35,0x00,0xab,0x0d,0xc0, 0x4b,0x06,0x1a,0x58,0x3f,0x0b,0x1a,0x50,
	0x00,0xa8,0x28,0xc0,0x05,0x39,0x01,0xa3, 0x00,0xa9,0x01,0xc0,0x0b,0xf4,0x1b,0xe4,
	0x52,0x06,0x13,0x50,0x30,0x0b,0x1e,0x50, 0x01,0xb6,0x00,0xac,0x9c,0xc0,0x06,0x3a,
	0x10,0xf4,0x00,0xe4,0x07,0x79,0x00,0x90, 0xaf,0x9b,0x04,0xf6,0x24,0xfe,0x93,0x87,
	0x33,0x0a,0x3a,0x50,0x03,0x3a,0x13,0xfe, 0x3f,0xa2,0x1a,0x00,0x01,0xaa,0xb4,0xc1,
	0x09,0xf4,0x08,0xe4,0x05,0x39,0x0a,0xf4, 0x11,0xe4,0x80,0xa2,0x13,0x00,0x2d,0x0a,
	0x00,0x90,0x9a,0x99,0xbc,0x87,0xf0,0xa3, 0x1b,0xf6,0xd9,0x87,0x7f,0xa2,0x93,0x03,
	0x13,0xc0,0x05,0x3b,0x1a,0xf4,0x38,0x58, 0x12,0xe4,0x26,0x0b,0x00,0x35,0x00,0x90,
	0x9f,0x9a,0xad,0x87,0x7f,0xa2,0x93,0x03, 0x1c,0xc1,0x01,0xa0,0x00,0xa4,0xa7,0x87,
	0x05,0xa1,0x21,0x08,0x00,0x90,0xa6,0x99, 0xa2,0x87,0x3a,0x58,0x05,0x3b,0x94,0x06,
	0x1a,0xf4,0x00,0x30,0x12,0xe4,0x60,0x06, 0x1a,0x0b,0x01,0x35,0x00,0x90,0x08,0x9b,
	0x96,0x87,0x38,0x58,0x20,0xa2,0x2b,0xec, 0x00,0x90,0xe6,0x9a,0x90,0x87,0x00,0x90,
	0x81,0x99,0x8d,0x87,0x00,0x90,0x4a,0x9b, 0x00,0xf4,0x00,0xe4,0x06,0x30,0x00,0xa8,
	0xdb,0xca,0x01,0xa0,0x01,0xa4,0x83,0x87, 0x84,0xa1,0x0f,0x08,0x00,0x90,0x82,0x99,
	0x7e,0x87,0xc0,0x46,0xfc,0x9f,0x80,0x00, 0xec,0x9f,0x80,0x00,0x80,0xbf,0x80,0x00,
	0x30,0x06,0x80,0x00,0x00,0x98,0x80,0x00, 0xff,0x9f,0x80,0x00,0xf8,0x9f,0x80,0x00,
	0x0d,0x06,0x00,0x00,0xff,0xff,0xff,0xc0, 0xff,0xff,0xff,0xbf,0xf4,0x9f,0x80,0x00,
	0x51,0x06,0x00,0x00,0x00,0xa0,0x80,0x00, 0x02,0x06,0x00,0x00,0xf0,0x65,0x5f,0x06,
	0x56,0x06,0x4d,0x06,0x44,0x06,0xf0,0x64, 0x86,0x60,0x03,0x33,0x11,0x3b,0x02,0x32,
	0x1c,0xf4,0x80,0xa2,0x24,0xfc,0x12,0xf4, 0x14,0x03,0x01,0x34,0x1c,0xf2,0x24,0xfe,
	0xa2,0x06,0x1c,0xf1,0x24,0xff,0x1b,0xe7, 0x9c,0x00,0x0f,0x3f,0x23,0xec,0x00,0xa9,
	0x6d,0xcd,0x93,0x06,0x4f,0x0a,0x24,0xf1, 0x90,0x06,0x10,0x3a,0xe3,0xea,0x80,0xa4,
	0x5b,0xf0,0x14,0x00,0x99,0x06,0xa4,0x06, 0x00,0xa3,0x11,0x80,0x54,0xf6,0x0c,0xc5,
	0x00,0xa4,0xa4,0x05,0x09,0xc1,0x5c,0x06, 0x2c,0x03,0x00,0x34,0x3f,0xa4,0x22,0x00,
	0x17,0xc1,0x3a,0x48,0x00,0x3c,0x22,0x40, 0x01,0xb7,0x01,0xb3,0x99,0x02,0x4e,0xcd,
	0x9a,0xf0,0x82,0xe8,0x15,0x28,0x96,0x48, 0xd2,0x48,0x14,0xf6,0x00,0xac,0xe5,0xca,
	0x00,0xa4,0xa4,0x05,0xe2,0xc0,0x5c,0x06, 0x2c,0x03,0x00,0x34,0x3f,0xa4,0x22,0x00,
	0xe7,0xc0,0x01,0xaa,0x22,0xc0,0x02,0xaa, 0x25,0xc0,0x03,0xaa,0x3f,0xc0,0x08,0xaa,
	0x40,0xc0,0x04,0xaa,0x4d,0xc0,0x05,0xaa, 0x52,0xc0,0x06,0xaa,0x54,0xc0,0x07,0xaa,
	0xdb,0xc1,0x2d,0xf2,0x42,0x06,0xae,0xe9, 0x14,0x58,0x32,0xf1,0x96,0xeb,0x76,0xf0,
	0x00,0xa2,0x00,0x33,0x03,0x80,0x2c,0x0b, 0x01,0xb2,0x9a,0x02,0x04,0xc0,0x43,0x06,
	0x1d,0x58,0x2d,0xeb,0xb5,0x02,0xf6,0xc9, 0x00,0x3b,0xc6,0x87,0x00,0x3c,0x22,0x48,
	0x3a,0x40,0x01,0xb7,0xc1,0x87,0x00,0x3a, 0x16,0x40,0x42,0x06,0x14,0x58,0x55,0x06,
	0x00,0x31,0x9a,0x06,0x01,0x3b,0x4e,0x06, 0x00,0xad,0x02,0xc0,0x1a,0x48,0x15,0x02,
	0x32,0xc0,0x41,0x06,0x0a,0x58,0x12,0xeb, 0xb2,0x02,0xf5,0xc3,0x00,0xa1,0x06,0x60,
	0x08,0xec,0x3c,0x6c,0x90,0x06,0x99,0x06, 0xa2,0x06,0xab,0x06,0xf0,0x6d,0x00,0x3a,
	0x16,0x40,0xa2,0x87,0x00,0x3a,0x14,0xf6, 0x14,0x0a,0x24,0xfe,0x14,0x40,0x14,0x0d,
	0x01,0xb2,0x16,0x40,0x60,0xa2,0x2a,0x40, 0x01,0xa4,0x2a,0x48,0x14,0x02,0xfc,0xc1,
	0x93,0x87,0x02,0x3a,0x32,0x01,0x12,0xf6, 0x00,0x3c,0x12,0xfe,0x22,0x40,0x8c,0x87,
	0x03,0x3c,0x05,0x33,0x04,0x34,0x88,0x87, 0x04,0x3a,0x01,0xba,0x04,0x32,0x00,0xaa,
	0x00,0xcc,0x82,0x87,0x05,0x3b,0x80,0x87, 0x53,0x06,0x00,0x39,0xaa,0x06,0xb1,0x06,
	0x7b,0x87,0xc0,0x46,0x30,0x06,0x80,0x00, 0x40,0x42,0x0f,0x00,0xb8,0x00,0x80,0x00,
	0xba,0x00,0x80,0x00,0xf0,0x65,0x5f,0x06, 0x56,0x06,0x4d,0x06,0x44,0x06,0xf0,0x64,
	0x84,0x60,0x17,0xec,0x0e,0x3a,0x80,0x06, 0x91,0x06,0x0c,0xec,0x02,0x33,0x0f,0x3a,
	0x00,0xaf,0x44,0xcd,0x0d,0x3b,0x1b,0xf4, 0x1b,0xe4,0x9a,0x06,0x13,0xf6,0x1b,0xfe,
	0x00,0x33,0x80,0xa3,0x5b,0x02,0x13,0x03, 0x1b,0xf6,0x6e,0x06,0x1b,0xfe,0x00,0xa5,
	0x0f,0xb6,0x01,0x33,0x10,0x80,0x01,0xaa, 0x46,0xc0,0x00,0xaa,0x37,0xc1,0x00,0x3b,
	0x51,0x06,0x4a,0x06,0x00,0xf4,0x00,0xe4, 0x00,0x90,0x28,0x99,0x00,0xa8,0x39,0xc0,
	0x01,0xb5,0xaf,0x02,0x23,0xcd,0x04,0xb4, 0xa3,0x48,0x20,0x28,0x33,0x40,0xe2,0x48,
	0x3f,0xa1,0x0a,0x00,0x07,0xaa,0xe6,0xc1, 0x1d,0x09,0x00,0xf2,0xc3,0xe8,0x0a,0x58,
	0x18,0xf1,0x94,0x06,0xc0,0xea,0x1b,0x0a, 0x40,0xf0,0x93,0x06,0x02,0xec,0x00,0xa3,
	0x60,0x06,0xa4,0x06,0x14,0xec,0x02,0x80, 0x01,0xb3,0x5b,0x05,0x03,0xc0,0x0a,0x58,
	0x12,0xea,0xa2,0x02,0xf8,0xc9,0x01,0xb5, 0x64,0x06,0xaf,0x02,0xdb,0xcc,0x04,0x60,
	0x38,0xec,0x3c,0x6c,0x90,0x06,0x99,0x06, 0xa2,0x06,0xab,0x06,0xf0,0x6d,0x04,0xaa,
	0x0e,0xc0,0x00,0xf4,0x00,0xa3,0x01,0xa1, 0x32,0xec,0x00,0xe4,0x00,0x90,0xee,0x98,
	0x00,0xa8,0xc5,0xc1,0x00,0xa7,0xea,0x87, 0x51,0x06,0x01,0x3b,0x4a,0x06,0xb9,0x87,
	0x02,0x3a,0x1a,0x01,0x32,0x40,0x00,0xa3, 0x01,0xa1,0x32,0xec,0xb2,0x87,0xc0,0x46,
	0x30,0x06,0x80,0x00,0x40,0x42,0x0f,0x00, 0x30,0x65,0x1d,0xec,0x0b,0xf4,0x07,0x09,
	0x83,0x60,0x00,0xf4,0x14,0xec,0x02,0x31, 0x02,0xe4,0x1b,0xe4,0x15,0xa1,0x04,0x08,
	0x01,0x35,0x00,0x34,0xff,0x97,0xb2,0x9e, 0x03,0x60,0x30,0x6d,0xb1,0x00,0x03,0x71,
	0x64,0x0a,0x00,0x00,0x00,0x65,0x06,0x08, 0x83,0x60,0x00,0xa3,0x54,0xb0,0x0d,0xa1,
	0x00,0xa2,0x00,0x33,0x01,0x33,0x02,0x33, 0xff,0x97,0xa0,0x9e,0x03,0x60,0x00,0x6d,
	0x64,0x0a,0x00,0x00,0x00,0x65,0x81,0x60, 0x6a,0x06,0x03,0xb2,0x00,0xf4,0x11,0x40,
	0x00,0xe4,0x01,0xa1,0x00,0xa3,0xff,0x97, 0xcf,0x9f,0x01,0x60,0x01,0xa0,0x00,0x6d,
	0x10,0x65,0x81,0x60,0x6c,0x06,0x03,0xb4, 0x00,0xf4,0x01,0xa1,0x22,0xec,0x80,0xa3,
	0x00,0xe4,0xff,0x97,0xc1,0x9f,0x01,0x60, 0x20,0x48,0x10,0x6d,0xf0,0x65,0x07,0xf4,
	0x0e,0xf4,0x1c,0xec,0x15,0xec,0x3f,0xe4, 0x36,0xe4,0xe3,0xf7,0x07,0xc4,0x23,0xec,
	0x38,0xec,0x31,0xec,0xff,0x97,0xb0,0x9f, 0x04,0xec,0x20,0xec,0xf0,0x6d,0x80,0xa1,
	0xb3,0xa0,0xff,0x97,0xcf,0x9f,0x31,0xec, 0x23,0xec,0x38,0xec,0x2a,0xec,0xff,0x97,
	0xa3,0x9f,0x00,0xa1,0x04,0xec,0xb3,0xa0, 0xff,0x97,0xc4,0x9f,0xed,0x87,0xc0,0x46,
	0xf0,0x65,0x57,0x06,0x46,0x06,0xc0,0x64, 0x00,0xf4,0x09,0xf4,0x07,0xe4,0x08,0xe4,
	0x19,0xf6,0x09,0xfe,0x01,0xa4,0x0c,0x00, 0xa4,0x06,0x7f,0xa4,0xa1,0x03,0x80,0xa5,
	0x88,0x06,0x1c,0xfc,0x19,0xf4,0x2d,0xf4, 0x09,0xfe,0x2c,0x03,0x00,0xa8,0x1e,0xcd,
	0x00,0xa6,0xaa,0x06,0x00,0xa3,0x98,0x05, 0x1d,0xc0,0x00,0xa9,0x08,0xc0,0x14,0xa3,
	0x25,0x48,0x29,0x02,0x04,0xc0,0x01,0xbb, 0x1b,0xf4,0x1b,0xfc,0x00,0xab,0xf7,0xc1,
	0x53,0x06,0x3b,0x03,0x1b,0x48,0x93,0x15, 0x00,0xa3,0x9c,0x05,0x02,0xc1,0x01,0xb7,
	0x3f,0xf4,0x3f,0xe4,0x01,0xb6,0x33,0xf4, 0x1b,0xe4,0x98,0x02,0xe2,0xcc,0x0c,0x6c,
	0x90,0x06,0x9a,0x06,0xf0,0x6d,0x53,0x06, 0x95,0x1d,0x3b,0x03,0x1d,0x40,0x00,0xa9,
	0xea,0xc0,0x14,0xa3,0x25,0x48,0x29,0x02, 0xe6,0xc0,0x01,0xbb,0x1b,0xf4,0x1b,0xfc,
	0x00,0xab,0xf7,0xc1,0xe0,0x87,0xc0,0x46, 0x07,0x0b,0x00,0xf6,0x00,0xfe,0x09,0xf6,
	0x18,0x40,0x09,0xfe,0x01,0xb3,0x19,0x40, 0x04,0x09,0x60,0xa3,0x0b,0x40,0x01,0xa2,
	0x0b,0x48,0x1a,0x02,0xfc,0xc1,0x70,0x07, 0xb8,0x00,0x80,0x00,0xba,0x00,0x80,0x00,
	0x30,0x65,0x03,0xf1,0x07,0x09,0x18,0xea, 0x0c,0x58,0x40,0xf0,0x00,0xa3,0x06,0x0d,
	0x02,0x80,0x01,0xb3,0xab,0x02,0x03,0xc0, 0x0a,0x58,0x12,0xeb,0x90,0x02,0xf8,0xc2,
	0x30,0x6d,0xc0,0x46,0x30,0x06,0x80,0x00, 0x40,0x42,0x0f,0x00,0x40,0x07,0xc0,0x46,
	0x00,0x65,0x00,0xa8,0x03,0xc0,0x02,0x08, 0x05,0xa1,0xff,0x97,0x43,0x9f,0x00,0x6d,
	0x02,0x06,0x00,0x00,0xf0,0x65,0x47,0x06, 0x80,0x64,0x84,0x60,0x07,0xec,0x6c,0x06,
	0xc8,0xa0,0xff,0x97,0xd5,0x9f,0x0f,0xb4, 0x00,0xa3,0x23,0x40,0x0e,0x0b,0x0f,0x0e,
	0x98,0x06,0x01,0xa5,0x02,0x80,0x01,0xbe, 0x00,0xae,0x10,0xc0,0x00,0xa3,0x38,0xec,
	0x41,0x06,0x06,0xa2,0x00,0x35,0x01,0x34, 0x02,0x35,0xff,0x97,0x83,0x9e,0x20,0x48,
	0x28,0x00,0x43,0x02,0x58,0x01,0x20,0x40, 0x00,0xa8,0xec,0xc0,0x01,0xa0,0x04,0x60,
	0x04,0x6c,0x90,0x06,0xf0,0x6d,0xc0,0x46, 0xec,0x0a,0x00,0x00,0x40,0x42,0x0f,0x00,
	0xf0,0x65,0x83,0x60,0x04,0xec,0x08,0x38, 0x0f,0xec,0x1d,0xec,0x16,0xf4,0xff,0x97,
	0xbf,0x9f,0x07,0x09,0x01,0xa3,0x36,0xe4, 0x02,0x33,0x20,0xec,0x3b,0xec,0x18,0xb1,
	0x0a,0xa2,0x00,0x36,0x01,0x35,0xff,0x97, 0x5d,0x9e,0x03,0x60,0xf0,0x6d,0xc0,0x46,
	0xec,0x0a,0x00,0x00,0xf0,0x65,0x5f,0x06, 0x56,0x06,0x4d,0x06,0x44,0x06,0xf0,0x64,
	0x84,0x60,0x1e,0xec,0x0d,0x3b,0x12,0xf4, 0x12,0xe4,0x80,0x06,0x18,0xec,0x03,0x32,
	0x0f,0xec,0x99,0x06,0xff,0x97,0x9c,0x9f, 0x03,0x3a,0x00,0xaa,0x30,0xcd,0x15,0xec,
	0x13,0xf4,0x80,0xa2,0x52,0xf0,0x92,0x06, 0x16,0x0a,0x40,0xb2,0x93,0x06,0x05,0x80,
	0x2d,0xeb,0x2d,0xf4,0x2d,0xfc,0x2b,0xf4, 0x00,0xab,0x21,0xcd,0x1b,0xe4,0x2c,0xec,
	0x53,0x05,0x01,0xcd,0x80,0xa4,0x64,0xf0, 0x01,0xa3,0x24,0xf4,0x24,0xe4,0x02,0x33,
	0x59,0x06,0x3b,0xec,0x40,0x06,0x0b,0xa2, 0x01,0x36,0x00,0x34,0xff,0x97,0x22,0x9e,
	0x40,0x06,0x49,0x06,0x3f,0xe9,0x36,0xe9, 0xff,0x97,0x7c,0x9f,0x00,0xa8,0xdf,0xc1,
	0x00,0xa0,0x04,0x60,0x3c,0x6c,0x90,0x06, 0x99,0x06,0xa2,0x06,0xab,0x06,0xf0,0x6d,
	0x03,0x38,0xf6,0x87,0xec,0x0a,0x00,0x00, 0x70,0x65,0x83,0x60,0x05,0xec,0x18,0xec,
	0x0e,0xec,0x1c,0xec,0xff,0x97,0x5c,0x9f, 0x08,0x09,0x01,0xa3,0x00,0xa2,0x00,0x33,
	0x01,0x32,0x02,0x33,0x28,0xec,0x33,0xec, 0x0a,0xa2,0x6c,0xb1,0xff,0x97,0xfa,0x9d,
	0x28,0xec,0x21,0xec,0xff,0x97,0x56,0x9f, 0x03,0x60,0x70,0x6d,0xec,0x0a,0x00,0x00,
	0xf0,0x65,0x57,0x06,0x4e,0x06,0x45,0x06, 0xe0,0x64,0x81,0x60,0x09,0x3e,0x8a,0x06,
	0x36,0xf6,0x0a,0x39,0x15,0xf4,0x36,0xfe, 0x80,0x06,0x1c,0xec,0x89,0x06,0x2d,0xe4,
	0xf3,0xf7,0x32,0xc4,0x49,0x06,0x00,0x31, 0x40,0x06,0x51,0x06,0x2a,0xec,0x23,0xec,
	0xff,0x97,0x80,0x9f,0x01,0xa7,0xb3,0xf7, 0x06,0xc4,0x01,0x60,0x38,0xec,0x1c,0x6c,
	0x90,0x06,0x99,0x06,0xa2,0x06,0xf0,0x6d, 0x80,0xa1,0x49,0xf1,0x66,0xe8,0x4b,0x06,
	0x00,0x33,0x40,0x06,0x51,0x06,0x2a,0xec, 0x33,0xec,0xff,0x97,0x51,0x9f,0x00,0xad,
	0xeb,0xcd,0x22,0x48,0x33,0x48,0x00,0xa7, 0x9a,0x02,0xe6,0xc1,0x00,0xa3,0x07,0x80,
	0x80,0xa1,0x49,0xf1,0xe2,0xe8,0x52,0xe8, 0x12,0x48,0xe1,0x1c,0x91,0x02,0x0a,0xc1,
	0x01,0xb3,0x9d,0x02,0xf4,0xcc,0x01,0xa7, 0xd7,0x87,0x51,0x06,0x20,0xa2,0x4b,0x06,
	0xff,0x97,0x9a,0x9f,0xc6,0x87,0x00,0xa7, 0xcf,0x87,0xc0,0x46,0x80,0x65,0x81,0x60,
	0x00,0x7f,0xbb,0xec,0x0a,0x0a,0x10,0xec, 0x02,0xa1,0x1a,0xec,0x80,0xa3,0xff,0x97,
	0x13,0x9e,0x08,0x0b,0xba,0xec,0x12,0x28, 0x12,0xf4,0x12,0xfc,0x1a,0x20,0xbb,0xec,
	0x1b,0x28,0x1b,0xf4,0x1b,0xe4,0x18,0xec, 0xbd,0x06,0x01,0x60,0x80,0x6d,0xc0,0x46,
	0x08,0x80,0xff,0xff,0x08,0x80,0x80,0x00, 0x80,0x65,0x82,0x60,0x00,0x7f,0x02,0xec,
	0x39,0x50,0x3b,0xed,0x1a,0x20,0x3a,0x58, 0x22,0xa3,0xd3,0x1c,0x00,0xab,0x44,0xc1,
	0x3b,0xed,0x00,0xa1,0x5a,0x1e,0x3b,0x58, 0x10,0xec,0x22,0xa1,0x1a,0xec,0x80,0xa3,
	0xff,0x97,0xea,0x9d,0x03,0xec,0x00,0xab, 0x01,0xc1,0x00,0xa3,0x47,0x80,0x3b,0x58,
	0x1a,0x48,0x3b,0x58,0x5b,0x48,0x9a,0x02, 0x31,0xc0,0x3a,0x58,0x22,0xa3,0x01,0xa1,
	0xd1,0x14,0x3b,0xed,0x00,0xa1,0x5a,0x1e, 0x3b,0x58,0x01,0xb3,0x10,0xec,0x01,0xa1,
	0x1a,0xec,0x00,0xa3,0xff,0x97,0xd0,0x9d, 0x22,0x80,0x1b,0x0a,0x3b,0x58,0x1b,0x48,
	0x19,0xec,0x38,0x58,0x41,0xe8,0x89,0x48, 0x11,0x40,0x01,0xb3,0x1b,0xf6,0x1a,0xfe,
	0x3b,0x58,0x1a,0x40,0x3b,0x58,0x1a,0x48, 0x1f,0xa3,0x13,0x00,0x1b,0xf6,0x1a,0xfe,
	0x3b,0x58,0x1a,0x40,0x3b,0x58,0x1a,0x48, 0x3b,0x58,0x5b,0x48,0x9a,0x02,0x07,0xc1,
	0x3a,0x58,0x22,0xa3,0x00,0xa1,0xd1,0x14, 0x02,0x80,0xc0,0x06,0x00,0x80,0xc0,0x06,
	0x3a,0x58,0x22,0xa3,0xd3,0x1c,0x00,0xab, 0x08,0xc0,0x08,0x0b,0x1b,0x48,0x1b,0xf6,
	0x1b,0xfe,0x1a,0xec,0x02,0xa3,0x13,0x00, 0x00,0xab,0xce,0xc0,0x01,0xa3,0x18,0xec,
	0xbd,0x06,0x02,0x60,0x80,0x6d,0xc0,0x46, 0x18,0x01,0x80,0x00,0x3d,0x01,0x80,0x00,
	0x20,0x06,0x01,0xc3,0x61,0x00,0x80,0xc3, 0x61,0x00,0x00,0xc3,0xb0,0x00,0xff,0xc3,
	0xb1,0x00,0x05,0xc2,0xb0,0x00,0x5a,0xc3, 0xb1,0x00,0x05,0xc2,0xb0,0x00,0x08,0xc4,
	0xb1,0x00,0x01,0xc2,0xb0,0x00,0x00,0xc4, 0xb1,0x00,0x01,0xc2,0xb0,0x00,0x80,0x83,
	0xb0,0x00,0x00,0x43,0xb1,0x00,0x01,0xc2, 0x00,0x00,0x00,0xc5,0xb1,0x00,0x02,0x82,
	0xb0,0x00,0x00,0x40,0xb0,0x00,0x00,0x81, 0xb1,0x00,0x01,0x42,0x00,0x00,0x00,0xc6,
	0xb0,0x00,0xff,0xc3,0xb1,0x00,0x05,0xc2, 0x61,0x00,0x80,0xc3,0x61,0x00,0x00,0xc3,
	0x84,0x05,0x00,0xc3,0x8c,0x05,0x20,0xc3, 0x88,0x05,0x20,0xc3,0xa0,0x00,0x00,0xc7,
	0x84,0x05,0x20,0xc3,0x40,0x01,0x00,0xc7, 0x84,0x05,0x00,0xc3,0xa0,0x00,0x00,0xc7,
	0x84,0x05,0x20,0xc3,0x50,0x00,0x00,0xc7, 0x8c,0x05,0x00,0xc3,0x0d,0x00,0x01,0xc3,
	0x0d,0x00,0x00,0xc3,0x0c,0x00,0x05,0xc2, 0x0c,0x00,0x00,0xc2,0x0c,0x00,0x00,0xc1,
	0x0d,0x00,0x01,0xc3,0x0d,0x00,0x01,0xc3, 0x0d,0x00,0x00,0xc3,0x0c,0x00,0x03,0xc2,
	0x0c,0x00,0x10,0xc4,0x0c,0x00,0x08,0xc4, 0x0c,0x00,0x00,0xc4,0x0c,0x00,0x00,0xc2,
	0x0d,0x00,0x0a,0xc3,0x0c,0x00,0x00,0xc1, 0x0d,0x00,0x01,0xc3,0x0d,0x00,0x01,0xc3,
	0x0d,0x00,0x00,0xc3,0x0c,0x00,0x06,0xc2, 0x0d,0x00,0x01,0xc3,0x0d,0x00,0x00,0xc3,
	0x0c,0x00,0x02,0xc2,0x0c,0x00,0x10,0xc4, 0x0c,0x00,0x08,0xc4,0x0c,0x00,0x00,0xc4,
	0x0c,0x00,0x00,0xc0,0x0d,0x00,0x01,0xc3, 0x0d,0x00,0x01,0xc3,0x0d,0x00,0x00,0xc3,
	0x0c,0x00,0x06,0xc2,0x0d,0x00,0x01,0xc3, 0x0d,0x00,0x00,0xc3,0x0c,0x00,0x20,0xc2,
	0x0c,0x00,0x10,0xc4,0x0c,0x00,0x08,0xc4, 0x0c,0x00,0x00,0xc4,0x0d,0x00,0x01,0xc3
#endif
};

int GetAddr (char *pc)
{
	int addr = Hex2Int(pc);
	return addr;
}


///////////////////////////////////////////////////////
// Function
///////////////////////////////////////////////////////

char arrb2t[] = "0123456789abcdef";
char arrh2i[256] = {
	16, 16, 16, 16, 16, 16, 16, 16,  16, 16, 16, 16, 16, 16, 16, 16,
	16, 16, 16, 16, 16, 16, 16, 16,  16, 16, 16, 16, 16, 16, 16, 16,
	16, 16, 16, 16, 16, 16, 16, 16,  16, 16, 16, 16, 16, 16, 16, 16,
	0,  1,  2,  3,  4,  5,  6,  7,   8,  9, 16, 16, 16, 16, 16, 16,

	16, 10, 11, 12, 13, 14, 15, 16,  16, 16, 16, 16, 16, 16, 16, 16,
	16, 16, 16, 16, 16, 16, 16, 16,  16, 16, 16, 16, 16, 16, 16, 16, 
	16, 10, 11, 12, 13, 14, 15, 16,  16, 16, 16, 16, 16, 16, 16, 16,
	16, 16, 16, 16, 16, 16, 16, 16,  16, 16, 16, 16, 16, 16, 16, 16,

	16, 16, 16, 16, 16, 16, 16, 16,  16, 16, 16, 16, 16, 16, 16, 16,
	16, 16, 16, 16, 16, 16, 16, 16,  16, 16, 16, 16, 16, 16, 16, 16,
	16, 16, 16, 16, 16, 16, 16, 16,  16, 16, 16, 16, 16, 16, 16, 16,
	16, 16, 16, 16, 16, 16, 16, 16,  16, 16, 16, 16, 16, 16, 16, 16,

	16, 16, 16, 16, 16, 16, 16, 16,  16, 16, 16, 16, 16, 16, 16, 16,
	16, 16, 16, 16, 16, 16, 16, 16,  16, 16, 16, 16, 16, 16, 16, 16,
	16, 16, 16, 16, 16, 16, 16, 16,  16, 16, 16, 16, 16, 16, 16, 16,
	16, 16, 16, 16, 16, 16, 16, 16,  16, 16, 16, 16, 16, 16, 16, 16
};

int Hex2Int (char * pc)
{
	int n = 0;
	int d = 0;

	char * p = pc;


	while ( (d = arrh2i[(int)*p++]) < 16) {
		n = (n<<4) + d;
	}

	return n;
}

#define MAXB2TSIZE  1024*64
int Bin2Text (uint8_t *lpD, uint8_t *lpS, int n, int len, int badr)
{
	int i = 0;
	int m = n;
	int d = 0;

	if (m>MAXB2TSIZE) 
		m = MAXB2TSIZE;

	for (i=0; i<m; i++) {

		if ((i&15)==0 && badr) {
			lpD[d++] = arrb2t [(i>>12) & 15];
			lpD[d++] = arrb2t [(i>>8) & 15];
			lpD[d++] = arrb2t [(i>>4) & 15];
			lpD[d++] = arrb2t [(i) & 15];
			lpD[d++] = ' ';
			lpD[d++] = ' ';
		}

		lpD[d++] = arrb2t [(lpS[i]>>4) & 15];
		lpD[d++] = arrb2t [lpS[i] & 15];
		lpD[d++] = ' ';

		if ((i&15)==7) lpD[d++] = ' ';
		else if ((i&15)==15) {
			lpD[d++] = '\r';
			lpD[d++] = '\n';
		}

	}

	len = d;
	lpD[d++] = '\0';
	return m;
}

void Bin2TextOut (uint8_t *lpS, int n, int format)
{
	int i = 0;
	int m = n;
	int d = 0;
	if (m>MAXB2TSIZE) m = MAXB2TSIZE;
	BYTE lpD[1024*32];

	if (format & TO_LEADING) {
		lpD[d++] = '-';
		lpD[d++] = ' ';
	}
	for (i=0; i<n; i++) {

		lpD[d++] = arrb2t [(lpS[i]>>4) & 15];
		lpD[d++] = arrb2t [lpS[i] & 15];

		if (!(format & TO_WORD)) {
			lpD[d++] = ' ';
			if ((i&15)==7) 
				lpD[d++] = ' ';
			else if ((i&15)==15) {
				lpD[d++] = '\r';
				lpD[d++] = '\n';
			}
		}
		else {
			if ((i&3)==3) 
				lpD[d++] = ' ';
		}
		if (d>1024*30) {
			lpD[d++] = 0;
			LOG_USER("%s", lpD);
			d = 0;
		}
	}
	if (format & TO_RETURN) {
		lpD[d++] = '\r';
		lpD[d++] = '\n';
	}

	if (format == TO_WORD && n == 12 && lpS[3] == 5) {
		int chain = ((int *) lpS)[2] >> 24;
		char * pc;
		if (chain == 5) 
			pc = " wb";
		else if (chain == 4)
			pc = " risc ctrl";
		else if (chain == 3)
			pc = " risc trace";
		else if (chain == 2)
			pc = " risc test";
		else if (chain == 1)
			pc = " risc reg";
		else if (chain == 0)
			pc = " global";
		else 
			pc = " unknown";
		strcpy (((char*)lpD)+d, pc);
	}
	else
		lpD[d++] = 0;

	LOG_USER("%s", lpD);

}

int sizet;
int GetOpt (int argc, char* argv[], char * poptc, int * popti, int size, char * fi, char * fo)
{
	size = 0;
	*fi = '\0';
	*fo = '\0';
	char *p;
	int i;
	int cur = 0;
	int next = 0;
	int n = strlen (poptc);



	LOG_DEBUG("sizeof uint8_t = %ld,unsign char = %ld,uint16_t = %ld,DWORD = %ld, LPBYTE = %ld", \
			sizeof(uint8_t ),sizeof(unsigned char),sizeof(uint16_t ),sizeof(DWORD),sizeof(unsigned char*));

	for (i=0; i<n; i++) 
		popti[i] = 0;

	for (; next<argc;) {
		p = argv[next];

		if (*p == '-') {
			char c = *(++p);
			next++;

			if (c == 'i') {		//-i input_file_name
				strcpy (fi, argv[next++]);
			}
			else if (c == 'o') {	//-o output_file_name
				strcpy (fo, argv[next++]);
			}
			else if (c == 's') {	//-s size
				char * psize = argv[next++];

				int sl = strlen (psize);

				if (psize[sl-1] == 'K' || psize[sl-1]=='k')
					sl = 1024;
				else if (psize[sl-1] == 'M' || psize[sl-1]=='m')
					sl = 1024 * 1024;
				else
					sl = 1;

				//size = (sl * atoi (psize) + 3) & 0xfffffffc;
				sizet = (sl * atoi (psize));

			}
			else {

				while (c != '\0') {	//-f fifo mode
					for (i=0; i<n; i++) {
						if (c == poptc[i]) popti[i] = 1;
					}
					c = *(++p);
				}
			}

		} // end option
		else {

			if (next>cur) 
				argv[cur] = argv[next];
			cur++;
			next++;
		}
	}
	argc = cur;

	return argc;
}

int freadfromtext(FILE *f, uint8_t *lpD, int size, int offset)
{
	// TODO: Add your control notification handler code here


	//int CurPos = 0;
	int BUFFERSIZE = 1024 * 64;
	BYTE buffer[1024 * 64];
	fseek(f, offset, SEEK_SET);

	int i = 0;
	int  nb = 0;
	int index = 0;
	int dh, dl;

	uint8_t *lpTmp = lpD;

	while (i < size) {

		while (index < nb && buffer[index] < 48) index++;

		if (index >= nb -1 ) {
			offset += index;
			//		CurPos += index;
			if (index == nb -1 ) fseek(f, -1, SEEK_CUR);
			nb = fread (buffer, 1, BUFFERSIZE, f);
			index = 0;

			if (nb < 2) break;
		}
		else {
			dh = buffer[index++];
			dl = buffer[index++];

			/*
			   if (dh >= 97) dh -= 87;
			   else if ( dh >= 65 ) dh -= 55;
			   else dh -= 48;

			   if (dl >= 97) dl -= 87;
			   else if ( dl >= 65 ) dl -= 55;
			   else dl -= 48;

			   lpTmp[i++] = ( dh << 4) + dl;
			 */
			lpTmp[i++] = ( arrh2i[dh] << 4) + arrh2i[dl];
		}

	}

	if ( i < size )
		offset += nb;
	else
		offset += index;


	return i;
}


/////////////////////////////////////////////////////////////////////
// uart 1/0
// wf adr [dat] [-i file_in] [-besm]
// rf adr [-o file_out] [-bs] 
// wc adr dat [-i file_in] [-bsm]
// rc adr [-o file_out] [-bs]
// rst: reset MCU
// stall: stall MCU
// boot: boot MCU
// cont: continue MCU
// bp: set hardware breakpoint
// lrun: run program in EVK ram
/////////////////////////////////////////////////////////////////////
int EVK_MCU_Reset ()
{

	BYTE dat = 0x0;
	WriteMem (tlink_dev, 0x643, &dat, 1, m_Evk);
	dat = 0x05;
	return WriteMem (tlink_dev, 0x602, &dat, 1, m_Evk);
}

int EVK_MCU_Run ()
{
	BYTE dat = 0x88;
	return WriteMem (tlink_dev, 0x602, &dat, 1, m_Evk);
}

int EVK_MCU_Boot ()
{
	BYTE dat = 0x84;
	return WriteMem (tlink_dev, 0x602, &dat, 1, m_Evk);
}


int EVK_MCU_RAM ()
{
	// check chip ID
	DWORD id;
	BYTE dat = 0x28;
	PBYTE pMem = m_mcuram;
	int nSize = sizeof (m_mcuram);

	LOG_DEBUG("Handle 0x%08x", (uint32_t)tlink_dev);
	ReadUSBMem(tlink_dev, 0x7c, (uint8_t *) &id, 4 /*, 1024*/);

	if ( (id & 0xffff0000)==0x53280000 ) {
		dat = 0x30;
		WriteMem (tlink_dev, 0x66, &dat, 1, 2);
	} else if ( (id & 0xffff0000)==0x53250000) {
		pMem = m_mcuram5325;
		nSize = sizeof (m_mcuram5325);
		//WriteMem (tlink_dev, 0x66, &dat, 1, 2);
	} else if ( (id & 0xff000000)==0x53000000 || (id & 0xffff0000)==0x08180000) {
		WriteMem (tlink_dev, 0x66, &dat, 1, 2);
		pMem = m_mcuram5325;
		nSize = sizeof (m_mcuram5325);
	} else {
		pMem = m_mcuram3520;
		nSize = sizeof (m_mcuram3520);
	}

	EVK_MCU_Reset ();

	int nw = WriteMem (tlink_dev, 0x8000, pMem, nSize, 2);

	if (nw != nSize) {
		LOG_USER("ERR: Flash error at: %x (expect %x)", nw, nSize);
		return 0;
	}

	EVK_MCU_Run ();

	usleep(50000);

	return 1;
}



int EVK_CheckSwire()
{
	int dat;

	LOG_DEBUG("EVK_CheckSWire");

	EVKCommand (tlink_dev, 0, 1, UCMD_SUSB, NULL);

	usleep (5000);

	int ret = EVKCommand (tlink_dev, 0xb2, 1, UCMD_CORE|UCMD_FRD,  NULL);
	ReadUSBReg(tlink_dev, m_mem_adr, &dat);


	if (ret && (dat & 0xff)!=0x80) {
		LOG_INFO("EVK: Swire OK");
		return 1;
	}

	ret = EVKCommand (tlink_dev, 0, 1, UCMD_SUSB, NULL);

	if (ret)
		ret = EVKCommand (tlink_dev, 0, 1, UCMD_CORE|UCMD_FRD, NULL);

	ReadUSBReg(tlink_dev, m_mem_adr, &dat);

	if (ret && (dat & 0xff)!=0x80) {
		LOG_USER("EVK: Swire Through USB OK");
		return 1;
	}

	LOG_USER("EVK: No Swire Slave Device");
	return 0;
}

int EVK_SetUartMode (int enable)
{
	// check chip ID
	if ( m_Evk ) {	//evk board, need turn on swire uart mode
		LOG_USER("---- get data from swire device ----");
		int tick, ret;

		if (enable) {
			ret = EVKCommand (tlink_dev, 0, 1, UCMD_UART | UCMD_FRD, &tick);
		}
		else {
			ret = EVKCommand (tlink_dev, 0, 1, UCMD_UART, &tick);
		}
	}
	else {
		LOG_USER("---- get data from usb device ----");
	}
	return 1;
}


//  EVK code
char *	evk_ptr_tls;
char *	evk_ptr_end;
//const char *	evk_ptr_tls;
//const char *	evk_ptr_end;
char *			evk_argv[16];
char *			evk_ptr_note;
int				evk_argc;
char			evk_tls_buff[256];
int				evk_tls_line;

int evk_open_script ()
{
	volatile unsigned int dat;

	int i;
	//	evk_ptr_tls = (const char *) EVK_ADR_SCRIPT;
	//flush out old cache content
	for (i=0; i<4096; i+=4) {
		dat = *( unsigned int *) &evk_ptr_tls[i];
	}
	dat = *( unsigned int *) &evk_ptr_tls[0];
	evk_ptr_tls += 4;
	evk_ptr_end = evk_ptr_tls + dat;
	evk_tls_line = 0;
	return 1;
}

int evk_read_argv ()
{
	//read line
	if (evk_tls_line >= 256 || evk_ptr_tls >= evk_ptr_end) {
		return 0;
	}

	char * p = evk_tls_buff;
	evk_ptr_note = NULL;
	evk_argc = 0;
	int n = 0;

	while (evk_ptr_tls < evk_ptr_end ) {

		char c = *evk_ptr_tls++;
		if (c == 0x0d || c == 0x0a || n>=255) {
			evk_tls_buff[n] = 0;
			//skip next CR or LF
			if (*evk_ptr_tls == 0x0d || *evk_ptr_tls == 0x0a) {
				evk_ptr_tls++;
			}
			break;	//line end
		}
		else if (evk_ptr_note) {
		}
		else if (c == '(' || c == ',' || c == ')') {
			//skip leading space or tab
			while (p < (evk_tls_buff + n) && (*p == ' ' || *p == '\t')) {
				p++;
			}
			//skip trailing space or tab
			char * pe = evk_tls_buff + n - 1;
			while (pe >= p && (*pe == ' ' || *pe == '\t')) {
				*pe-- = 0;
			}
			evk_argv[evk_argc++] = p;
			p = evk_tls_buff + n + 1;
			c = 0;
		}
		else if ( c == '#' ) {
			evk_ptr_note = evk_tls_buff + n + 1;
		}
		evk_tls_buff[n++] = c;
	}	


	evk_tls_line++;

	return evk_ptr_tls <= evk_ptr_end;
}

int evk_filenamencmp(char *s1, char *s2, int n) 
{
		if (!n) 
			return 0;

		unsigned char n1, n2;

		while (n) {
			n--;
			n1 = *s1;
			if (n1>='a' && n1<='z') {	//change to upper case
				n1 -= 0x20;
			}
			n2 = *s2;
			if (n2>='a' && n2<='z') {	//change to upper case
				n2 -= 0x20;
			}
			if (! (n1 && n1==n2))
				break;
			s1++;
			s2++;
		}
		return n1 - n2;
}


char * evk_open_file (char * filename, int * plen)
{
	//char * p = NULL;
	char * pfat = (char *) (evk_ptr_tls + 0x1000);
	int i;

	for (i=0; i<4096; i+=32) {

		// char * pff = (char *) (pfat + i + 4);

		if (evk_filenamencmp (filename, (char *) (pfat + i + 4), 28) == 0) {
			int nlen = *(int *)(pfat + i);
			*plen = nlen & 0xffffff;
			return pfat + 4096 + (nlen>>24) * 256;
		} else if (pfat[i] == -1) {
			break; 
		}
	}
	*plen = 0;
	return NULL;
}


int Cmd_Process (char * cmd, int argc, char* argv[]) 
{
	int first_block = 1;
	int bfifo, bbin, bpair, berase, brend, bboot, bnum, busb;
	int dat0;
	int adr = 0;
	int size = 0;

	int ret = 0;
	int nt = 0;
	int ucmd = 0;
	//int scmd = 0;
	int tick;
	int ms = 0;

	char fi[1024];
	char fo[1024];
	int opt[16];

	int adr_erase = 0xfffff;
	int buffsize = 1024 * 4;



	LOG_DEBUG("cmd_process %s argc %d", cmd, argc);	

	argc = GetOpt (argc, argv, CMD_STR_OPT, opt, sizet, fi, fo);


	bfifo = opt[0] ? 0x200 : 0;
	bbin  = opt[1];
	bpair = opt[2];
	berase = opt[3];	//erase flash
	brend  = opt[4];	//run MCU
	bboot = opt[5];
	bnum = opt[6];
	busb = opt[7];
	bsilence = opt[8];

	
	if ( strcmp(cmd, "rst") == 0) {

		ucmd = UCMD_RST | UCMD_FSWIRE;
		ret = EVKCommand (tlink_dev, 0, 1, ucmd, &tick);

		if (!ret) {
			LOG_USER("ERR: Slave MCU Reset Failed");
			return 0;
		}
		else {
			LOG_USER("Slave MCU Reset");
			return 0;
		}
	}

	if (!busb)
		m_Evk = IsEVKDevice (tlink_dev);
	else
		m_Evk = 0;

	if ( strcmp(cmd, "sp") == 0) {

		WriteUSBReg (tlink_dev, 0xb2, GetAddr (argv[0]));

		if (argc > 1) { 
			// UCMD_SPEED
			int swbadr = GetAddr (argv[1]);

			if (swbadr) {
				EVKCommand (tlink_dev, GetAddr (argv[1]), 0, UCMD_SPEED, NULL);
				LOG_USER("Set SWB controller register: %x", (uint32_t)argv[1]);
			}
		}
		return 1;
	}
	else if ( strcmp(cmd, "tcfg") == 0) {
		//TestConfig ();
		return 1;
	}

	int rw_core = busb && (strcmp(cmd, "wc") == 0 || strcmp(cmd, "rc") == 0);

	if (m_Evk && !rw_core) {
		if (!EVK_CheckSwire ())
		{
			LOG_DEBUG("check swire bailed out");
			return 0;
		}
	}

	if (argc == 0) 
		adr = 0;
	else 
		adr = GetAddr (argv[0]);

	int do_erase = 0;
	int do_wr = 0;
	int do_run = 0;
	int do_check = 0;
	int do_skip_program = 0;
	int	do_otp = 0;

	if (argc < 2) {
		dat0 = 0;
		size = 0;
	}
	else {
		dat0 = Hex2Int (argv[1]);

		if (strlen(argv[1]) <= 2) {
			size = 1;
			dat0 = dat0 * 0x1010101;
		}
		else if (strlen(argv[1]) <= 4) { 
			size = 2;
			dat0 = dat0 * 0x10001;
		}
		else if (strlen(argv[1]) <= 6) 
			size = 3;
		else 
			size = 4;

		if (argc > 2)
			size = (argc - 1) * 4;
	}

	if (sizet) {
		size = sizet;
	}

	if (!busb & !m_Evk) {
		busb = 1;
	}


	if (strcmp (cmd, "help") == 0) {
		LOG_USER(RC_CMD_HELP);
		return 1;
	} else if ( strcmp(cmd, "nocmd") == 0) {
		ucmd = UCMD_FLASH;
		do_erase = 1;
		do_wr = 1;
		do_check = 1;
		if (!fi[0]) {
			strcpy (fi, "boot.bin");
			bbin = 1;
		}
	}
	else if ( strcmp(cmd, "wf") == 0) {
		ucmd = UCMD_FLASH;
		do_erase = berase;
		do_wr = 1;
		do_check = 1;
		if (m_Evk)
			EVK_MCU_Reset ();
		if (!fi[0] && argc<2)
			do_skip_program = 1;
	}
	else if ( strcmp(cmd, "rf") == 0) {
		if (m_Evk)
			EVK_MCU_Reset ();
		ucmd = UCMD_FLASH | UCMD_FRD;
	}
	else if ( strcmp(cmd, "wc") == 0) {
		ucmd = UCMD_CORE;
		//busb = 0;
		do_wr = 1;
	}
	else if ( strcmp(cmd, "rc") == 0) {
		ucmd = UCMD_CORE | UCMD_FRD;
		//busb = 0;
	}
	else if ( strcmp(cmd, "wo") == 0) {
		ucmd = UCMD_OTP;
		busb = 0;
		do_wr = 1;
		do_otp = 1;
		buffsize = 1024;
	}
	else if ( strcmp(cmd, "stall") == 0) {
		ucmd = UCMD_STALL | UCMD_FSWIRE;
		ret = EVKCommand (tlink_dev, 0, 1, ucmd, &tick);
		if (!ret) {
			LOG_USER("ERR: Slave MCU Stall Failed");
			return 0;
		}
		else {
			LOG_USER("Slave MCU htaled");
			return 0;
		}
	}
	else if ( strcmp(cmd, "cont") == 0) {

		ucmd = UCMD_CONT | UCMD_FSWIRE;

		ret = EVKCommand (tlink_dev, 0, 1, ucmd, &tick);
		if (!ret) {
			LOG_USER("ERR: Slave MCU resume failed");
			return 0;
		}
		else {
			LOG_USER("Slave MCU resumed");
			return 0;
		}
	}
	else if ( strcmp(cmd, "boot") == 0) {
		ucmd = UCMD_BOOT | UCMD_FSWIRE;
		ret = EVKCommand (tlink_dev, 0, 1, ucmd, &tick);
		if (!ret) {
			LOG_USER("ERR: Slave MCU Boot failed");
			return 0;
		}
		else {
			LOG_USER("Slave MCU Booted");
			return 0;
		}
	}
	else if ( strcmp(cmd, "bp") == 0) {
		ucmd = UCMD_BP | UCMD_FSWIRE;
		ret = EVKCommand (tlink_dev, 0, 1, ucmd, &tick);
		if (!ret) {
			LOG_USER("ERR: Slave MCU set breakpoint failed");
			return 0;
		}
		else {
			LOG_USER("Slave MCU breaksetpoint set");
			return 0;
		}
	}
	else if ( strcmp(cmd, "lrun") == 0) {
		busb = 1;
		do_run = 1;
		adr = 0x8000;
		if (m_Evk)
			ucmd = UCMD_CORE;
		do_wr = 1;
		EVK_MCU_Reset ();
		if (!fi[0]) {
			strcpy (fi, "boot.bin");
			bbin = 1;
		}
		//ucmd = UCMD_WCORE;
	}

	if ( strcmp(cmd, "bi") == 0) {
		int bulksize = 1024*64;
		if (argc > 0) bulksize = GetAddr (argv[0]);
		WriteUSBReg (tlink_dev, 0x13c, 64);
		EVK_SetUartMode (1);
		//BulkIn (bulksize, fo, size);
		return 0;
	}

	if ( strcmp(cmd, "vcd") == 0) {
		int timescale = 33;
		if (argc > 0) timescale = GetAddr (argv[0]);
		//TraceVCD (timescale, fi, fo);
		return 0;
	}

	if ( strcmp(cmd, "udp") == 0) {
		int bulksize = 1024*64;
		if (argc > 0) bulksize = GetAddr (argv[0]);
		int port = 0x3520;
		if (argc > 1) port = GetAddr (argv[1]);
		//BulkInToUDP (bulksize, size, port);
		return 0;
	}

	if ( strcmp(cmd, "uart") == 0) {

		int mode = 1;
		if (argc > 0) mode = GetAddr (argv[0]);
		ucmd = UCMD_UART;
		uart_mode = 0;

		EVK_SetUartMode (1);

		uart_mode = mode;
		if (size)
			WriteUSBReg (tlink_dev, 0x13c, size);

		while (mode) {

			if (uart_mode) {
				//UartGet (uart_mode);
				//lerr = GetLastError ();
			}
			else
				usleep (10000);
		}

		return 1;
	}

	if (!busb) {
		ucmd |= UCMD_FSWIRE;
	}
	else if (ucmd & UCMD_FLASH) {
		buffsize = 1024;
		m_mem_adr = 0x97c0;
		if (!EVK_MCU_RAM ())
			return 0;
	}

	///////////////////////////////////////////////
	// file input/output
	///////////////////////////////////////////////
	FILE *filei, *fileo;
	if (fi[0]) {
		if( (filei  = fopen(fi, "rb" )) == NULL ) {
			LOG_DEBUG("ERR: Could not open file: %s", fi);
			return 0;
		}
	}


	if (fo[0]) {
		if( (fileo  = fopen(fo, "wb" )) == NULL ) {
			LOG_DEBUG("ERR: Could not open file: %s", fo);
			return 0;
		}
	}



	uint8_t *lpD = (uint8_t *)cmdbuff;
	uint8_t *lpT = lpD + 1024 * 512;
	int *lpN = (int*) lpD;

	////////////////////////////////
	// Memory Read Command
	////////////////////////////////

	//unsigned char ann[4096];
	//int nnn = ReadMem(tlink_dev, 0x8000, ann, 2051, 4);

	int len = 0, nc;

	int offset = 0;
	int rn;
	int left = (ucmd & UCMD_FRD) && (size==0) ? 4 : size;
	int wn = 0;

	if ((ucmd & UCMD_FRD) && left>0) {

		do {
			if (left > buffsize) 
				rn = buffsize;
			else 
				rn = left;

			if (!rw_core) {
				ret = EVKCommand (tlink_dev, adr, rn, ucmd, /*lpD, */&tick);
				ms += tick / 30000;

				if (ret == 0) {
					LOG_USER("ERR: Read error");
					return 0;
				}
				else if (ret < rn)
					left = 0;

				ReadMem (tlink_dev, m_mem_adr, lpD, ret, 2);
			} else {
				ReadMem (tlink_dev, adr, lpD, rn, 2 | bfifo);
				ret = rn;
			}

			if (first_block) {
				first_block = 0;
				int nfb = 1024;

				if (ret < nfb)
					nfb = ret;
			}
			wn += ret;

			if (fo[0] && bbin) 
				rn = fwrite (lpD, 1, ret, fileo);
			else {

				int pos = 0;
				rn = ret;

				while (pos < ret) {

					nc = Bin2Text (lpT, lpD+pos, rn, len, !fo[0]);

					if (fo[0]) 
						fwrite (lpT, 1, len, fileo);
					else {
						if (!bsilence) {
							LOG_USER("%s", lpT);
						}
					}
					rn -= nc;
					pos += nc;
				}
			}

			if (fo[0]) {
				LOG_USER("done: %d bytes", wn);
			}

			if (left >= ret) 
				left -= ret;
			else 
				left = 0;

			adr += ret;

		} while (left);

		if (fo[0]) 
			fclose (fileo);
	}


	/////////////////////////////////////
	// memory write
	/////////////////////////////////////
	int textbuffsize = buffsize * 4;
	if (do_wr & (fi[0] || size > 0)) {	//download file

		for (int k=0; k<size/4+1 && k<buffsize/4+1; k++) {
			lpN[k] = dat0;
			if ( (k+2) < argc)
			{
				dat0 = Hex2Int (argv[k+2]);
			}
		}

		//int src_adr = adr;
		int rnb = 0;
		do {

			if (fi[0]) {
				if (rnb!=0) {
					memcpy (lpD, lpD + rn, rnb);
					rn = rnb;
					rnb = 0;
				}
				else if (bbin) 
					rn = fread (lpD, 1, buffsize, filei);
				else
					rn = freadfromtext (filei, lpD, textbuffsize, offset);
			}
			else {
				rn = buffsize > size ? size : buffsize;
			}

			if (do_erase && (adr>>12) != ((adr+rn-1)>>12)) {
				rnb = rn - (0x10000 - (adr & 0xfff)); 
				rn = (rn - rnb) & 0xfff;
			}

			int retry = 0;
			int wferr = 0;

			int scmd;

			while (rn && retry++<3) {
				usleep(3000);       
				if (wferr) {
					adr_erase = 0xfffff;
					wferr = 0;
				}
				if (do_erase && adr_erase != (adr>>12)) {
					adr_erase = adr >> 12;
					if (do_skip_program) {
						LOG_USER("\tFlash Sector (4K) Erase at address %x", adr);
					} else {
						LOG_USER ("\tFlash Sector (4K) Erase & Program at address %x", adr);
					}
					scmd = UCMD_FERASE;
				}
				else {
					scmd = 0;
					if (!do_skip_program && !do_run && (ucmd & 0x3f00)!=UCMD_CORE && (ucmd & 0x3f00)!=UCMD_OTP)
						LOG_USER("\tFlash Sector (4K) Program at address %x", adr);
				}
				scmd |= do_check ? UCMD_FCHECK : 0;

				if (do_run & !m_Evk) {	// download program in local SRAM
					ret = WriteMem (tlink_dev, adr, lpD, rn, 2 | bfifo);
					tick = 0;
				}
				else if (!do_skip_program) {	// download program in buffer
					if (rw_core) {
						WriteMem (tlink_dev, adr, lpD, rn, 2 | bfifo);
					}
					else {
						WriteMem (tlink_dev, m_mem_adr, lpD, rn, 2 | bfifo);

						ret = EVKCommand (tlink_dev, adr, rn, ucmd | scmd, /*lpD,*/ &tick);
						//if (0) {
						if (!ret && do_otp) {
							LOG_USER ("\tOTP Program Check Error at Addr %x", adr);
							return 0; 
						}
						else if (! ret) {
							LOG_USER("\tProgram Check Error at Addr %x", adr);
							wferr = 1; 
						}
					}
					}
					else if (do_erase) {
						ucmd = UCMD_ERASE | (busb ? 0 : UCMD_FSWIRE);
						ret = EVKCommand (tlink_dev, adr, 1, ucmd, /*lpD,*/ &tick);
						if (! ret) {
							LOG_USER("ERR: Sector Erase Error");
						}
					}

					ms += tick / 30000;
					if (!wferr) {

						if (do_skip_program) {
						}

						if (do_otp) {
							LOG_USER ("\tOTP program 0x%0x\t%d bytes", adr, rn);
						}

						if (!bfifo) adr += rn;
						if (!fi[0]) size -= size < rn ? size : rn;

						break;
					}
				}

				if (retry>=3) {
					LOG_USER("ERR: Write Error: %x", adr);
					return 0;
				}

				nt += rn;
			} while (rn);

			if (fi[0]) {
				fclose (filei);
				LOG_USER("\tfile dowload  %d bytes", nt);
			}
		}

		//if (fi[0]) fclose (filei);
		//if (fo[0]) fclose (fileo);

		if (do_run) {
			EVK_MCU_Run ();
			if (m_Evk) {
				LOG_USER("\tRestart MCU in Swire Device");
			} else {
				LOG_USER("\tRestart MCU in USB Device");
			}
		}

		if (bboot && (m_Evk)) {
			EVK_MCU_Boot ();
			LOG_USER("Reboot MCU in Swire Device ");
		}
		else if (bboot) {
			EVK_MCU_Boot ();
			LOG_USER("Reboot MCU in USB Device");
		}

		LOG_INFO("Total Time: %d ms", ms);

		return 1;
}

#if defined(__clang__)
# pragma clang diagnostic pop
#endif


